jsont error-detail

This commit is contained in:
Swrup 2025-10-01 17:26:50 +02:00
parent 5eb54fa81b
commit 0325cd9167
3 changed files with 25 additions and 8 deletions

View file

@ -1,7 +1,7 @@
(executable
(public_name mte)
(name mte)
(modules assets assets_crunch headers mte config util)
(modules assets assets_crunch headers mte config util types)
(libraries
headers_lib
syntax

View file

@ -13,13 +13,11 @@
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. *)
(* TODO ??: GANA error codes
https://git.gnunet.org/gana.git/tree/gnu-taler-error-codes/registry.rec *)
(* https://docs.taler.net/core/api-common.html#tsref-type-ErrorDetail *)
let error_detail ?hint status =
let _ = (hint, status) in
"{}"
let error_detail ?hint _status =
let open Types.ErrorDetail in
let code = -1 in
let s = to_string (make code hint) in
s
module Respond_with = struct
open Vif.Response

19
src/types.ml Normal file
View file

@ -0,0 +1,19 @@
(* https://docs.taler.net/core/api-common.html#tsref-type-ErrorDetail *)
module ErrorDetail = struct
(* TODO GANA error codes
https://git.gnunet.org/gana.git/tree/gnu-taler-error-codes/registry.rec *)
type t = { code: int; hint: string option }
let make code hint = { code; hint }
let enc_code v = v.code
let enc_hint v = v.hint
let jsont =
Jsont.Object.map ~kind:"ErrorDetail" make
|> Jsont.Object.mem "code" Jsont.int ~enc:enc_code
|> Jsont.Object.opt_mem "hint" Jsont.(string) ~enc:enc_hint
|> Jsont.Object.finish
let to_string v = Jsont_bytesrw.encode_string jsont v |> Result.get_ok
let of_string v = Jsont_bytesrw.decode_string jsont v
end