UNPKG

machinomy

Version:

Micropayments powered by Ethereum

45 lines 1.55 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const Exceptions_1 = require("./Exceptions"); const url_1 = require("url"); class PaymentRequiredRequest { constructor(sender, datetime) { this.sender = sender; this.datetime = datetime; } } exports.PaymentRequiredRequest = PaymentRequiredRequest; class PaymentRequiredRequestSerializer { serialize(obj, baseurl) { const url = `${baseurl}?sender=${obj.sender}${obj.datetime ? `&timestamp=${obj.datetime}` : ''}`; return url; } deserialize(urlString) { const url = url_1.parse(urlString); if (!url.query) { throw new Exceptions_1.InvalidUrlError(); } const params = url.query.split('&').reduce((acc, hash) => { const [key, val] = hash.split('='); return Object.assign(acc, { [key]: decodeURIComponent(val) }); }, {}); const sender = params.sender; if (!sender) { throw new Exceptions_1.InvalidUrlError(); } let datetime = params.datetime; if (datetime) { datetime = Number(datetime); } if (datetime && isNaN(datetime)) { datetime = undefined; } return { sender: sender, datetime: datetime }; } } PaymentRequiredRequestSerializer.instance = new PaymentRequiredRequestSerializer(); exports.PaymentRequiredRequestSerializer = PaymentRequiredRequestSerializer; //# sourceMappingURL=PaymentRequiredRequest.js.map