如何将postgres程序异常消息传播到hasura突变响应中?

时间:2020-08-01 12:18:31

标签: postgresql hasura

说我在hasura实例中有一个表items,可以通过自动hasura api向其中添加数据。假设我有一个突变insert_items_one。此外,假设项目插入在某些情况下可能会失败。为此,假设我有一个像这样的触发器:

CREATE FUNCTION check_item_insertion() RETURNS trigger AS $emp_stamp$
  BEGIN
    IF my_condition_on_new_item_insertion THEN
      RAISE EXCEPTION 'My clear explanation on what happened';
    END IF;
    RETURN NEW;
  END;
$emp_stamp$ LANGUAGE plpgsql;
CREATE TRIGGER check_item_insertion_trigger BEFORE INSERT OR UPDATE ON items FOR EACH ROW EXECUTE PROCEDURE check_item_insertion();

现在,如果我尝试在insert_items_one为真的情况下使用my_condition_on_new_item_insertion插入新项目,那么hasura会回复:

{'extensions': {'path': '$.selectionSet.insert_items_one.args.object', 'code': 'unexpected'}, 'message': 'database query error'}

这很具有欺骗性,因为我的异常消息非常清楚,并为api的客户端提供了有用的信息。如何将异常的消息传播回客户端?

0 个答案:

没有答案