machinomy
Version:
Micropayments powered by Ethereum
45 lines • 1.55 kB
JavaScript
;
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 ? `×tamp=${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