From 48c275866528d62da34ede1013d7e99f632a6eb2 Mon Sep 17 00:00:00 2001 From: Daniel Lugo Date: Tue, 24 Mar 2020 11:06:20 -0400 Subject: [PATCH] OrderResponse --- services/gunDB/contact-api/schema.js | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/services/gunDB/contact-api/schema.js b/services/gunDB/contact-api/schema.js index d4281ee6..435c0ec4 100644 --- a/services/gunDB/contact-api/schema.js +++ b/services/gunDB/contact-api/schema.js @@ -382,3 +382,31 @@ exports.isOrder = item => { return typeof obj.timestamp === 'number' } + +/** + * @typedef {object} OrderResponse + * @prop {'err'|'invoice'} type + * @prop {string} response + */ + +/** + * @param {*} o + * @returns {o is OrderResponse} + */ +exports.isOrderResponse = o => { + if (typeof o !== 'object') { + return false + } + + if (o === null) { + return false + } + + const obj = /** @type {OrderResponse} */ (o) + + if (typeof obj.response !== 'string') { + return false + } + + return obj.type === 'err' || obj.type === 'invoice' +}