srtrain
Version:
Node.js SRT train unofficial SDK
58 lines (57 loc) • 2.15 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.SRTReservation = void 0;
const moment_1 = __importDefault(require("moment"));
const errorCode_1 = require("./constants/errorCode");
const error_1 = require("./error");
const ticket_1 = require("./ticket");
const train_1 = require("./train");
class SRTReservation {
srt;
reservationId;
totalPrice;
seatCount;
train;
paymentDate;
paid;
tickets;
constructor(srt, options) {
this.srt = srt;
const { trainData, payData } = options;
this.reservationId = trainData['pnrNo'];
this.totalPrice = parseInt(trainData['rcvdAmt']);
this.seatCount = parseInt(trainData['tkSpecNum']);
this.train = new train_1.SRTTrain(srt, payData);
this.paymentDate = (0, moment_1.default)(`${payData['iseLmtDt']} ${payData['iseLmtTm']}`, 'YYYYMMDD HHmmss');
this.paid = payData['stlFlg'] === 'Y';
}
async getTickets() {
if (this.tickets)
return this.tickets;
if (!this.srt.isLoggined) {
throw new error_1.SRTError(errorCode_1.SRTErrorCode.LOGIN_REQUIRED, '로그인 후 사용하십시요.');
}
const { data } = await this.srt.axios.post('/ard/selectListArd02017_n.do', {
pnrNo: this.reservationId,
jrnySqno: '1',
});
this.srt.parseResponse(data);
this.tickets = data['trainListMap'].map((ticketData) => new ticket_1.SRTTicket(this.srt, ticketData));
return this.tickets;
}
async cancel() {
if (!this.srt.isLoggined) {
throw new error_1.SRTError(errorCode_1.SRTErrorCode.LOGIN_REQUIRED, '로그인 후 사용하십시요.');
}
const { data } = await this.srt.axios.post('/ard/selectListArd02045_n.do', {
pnrNo: this.reservationId,
jrnyCnt: '1',
rsvChgTno: '0',
});
this.srt.parseResponse(data);
}
}
exports.SRTReservation = SRTReservation;