tw-voucher
Version:
Redeem อั่งเปา True Money Wallet ด้วย Node.js
78 lines (77 loc) • 2.65 kB
TypeScript
export type BahtAmount = string;
export type MobileNumber = string;
export type ProfilePicURL = string | null;
export type Timestamp = number;
export type VoucherCode = string;
export interface TicketInfo {
mobile: MobileNumber;
update_date: Timestamp;
amount_baht: BahtAmount;
full_name: string;
profile_pic: ProfilePicURL;
}
export interface VoucherData {
voucher_id: string;
amount_baht: BahtAmount;
redeemed_amount_baht: BahtAmount;
member: number;
status: string;
link: VoucherCode;
detail: string;
expire_date: Timestamp;
type: string;
redeemed: number;
available: number;
}
export interface Voucher {
status: {
message: string;
code: string;
};
data: {
voucher: VoucherData;
owner_profile: {
full_name: string;
};
redeemer_profile: {
mobile_number: MobileNumber;
};
my_ticket: TicketInfo;
tickets: TicketInfo[];
};
}
export interface simplifiedVoucher {
owner_full_name: string;
amount: number;
code: VoucherCode;
}
/**
* ส่งคำขอไปยัง API เพื่อใช้ซองอั่งเปา
*
* @param {string} mobileNumber - หมายเลขบัญชี TrueMoney Wallet
* @param {string} voucherLink - ลิงก์หรือโค้ดซองอั่งเปา
* @returns {Promise<Voucher>} Promise ที่คืนข้อมูล Voucher
*
* @example
* // ใช้ร่วมกับ @type เพื่อให้มี auto-complete
* /** @type {import("tw-voucher").Voucher} *\/
* const result = await redeemVoucher("0382149845", "0197a3ca6ecb7b4aa07632f832159fc982S");
* console.log(result.data.voucher.voucher_id);
*/
declare function redeemVoucher(mobileNumber: MobileNumber, voucherLink: string): Promise<Voucher>;
/**
* ย่อการตอบกลับจาก API เพื่อให้ใช้งานง่ายขึ้น
*
* @param {Voucher} voucher - ผลลัพธ์สุดท้ายที่ได้จาก redeemVoucher
* @returns {simplifiedVoucher} ข้อมูล Voucher แบบย่อ
*
* @example
* const response = await redeemVoucher("0382149845", "0197a3ca6ecb7b4aa07632f832159fc982S");
*
* // ใช้ร่วมกับ @type เพื่อให้มี auto-complete
* /** @type {import("tw-voucher").simplifiedVoucher} *\/
* const result = simplify(response);
* console.log(result.owner_full_name);
*/
export declare function simplify(voucher: Voucher): simplifiedVoucher;
export default redeemVoucher;