machinomy
Version:
Micropayments powered by Ethereum
43 lines • 2.03 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const payment_1 = require("../../payment");
const AbstractPaymentsDatabase_1 = require("../AbstractPaymentsDatabase");
class PostgresPaymentsDatabase extends AbstractPaymentsDatabase_1.default {
save(token, payment) {
const serialized = payment_1.PaymentSerde.instance.serialize(payment);
serialized.kind = this.kind;
serialized.token = token;
return this.engine.exec((client) => client.query('INSERT INTO payment("channelId", kind, token, sender, receiver, price, value, ' +
'"channelValue", v, r, s, meta, "contractAddress", "createdAt") VALUES($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14)', [
serialized.channelId,
serialized.kind,
serialized.token,
serialized.sender,
serialized.receiver,
serialized.price,
serialized.value,
serialized.channelValue,
serialized.v,
serialized.r,
serialized.s,
serialized.meta,
serialized.contractAddress,
Date.now()
]));
}
firstMaximum(channelId) {
return this.engine.exec((client) => client.query('SELECT "channelId", kind, token, sender, receiver, price, value, ' +
'"channelValue", v, r, s, meta, "contractAddress", "createdAt" FROM payment WHERE "channelId" = $1 ' +
'ORDER BY value DESC', [
channelId.toString()
])).then((res) => this.inflatePayment(res.rows[0]));
}
findByToken(token) {
return this.engine.exec((client) => client.query('SELECT "channelId", kind, token, sender, receiver, price, value, ' +
'"channelValue", v, r, s, meta, "contractAddress", "createdAt" FROM payment WHERE token = $1', [
token
])).then((res) => this.inflatePayment(res.rows[0]));
}
}
exports.default = PostgresPaymentsDatabase;
//# sourceMappingURL=PostgresPaymentsDatabase.js.map