@motionpicture/coa-service 9.4.0 → 9.5.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,30 @@
1
+ /**
2
+ * 販売可能チケット抽出の例
3
+ */
4
+ const COA = require('../');
5
+ const fs = require('fs');
6
+
7
+ const service = new COA.service.Reserve(
8
+ {
9
+ endpoint: process.env.COA_ENDPOINT,
10
+ auth: new COA.auth.RefreshToken({
11
+ endpoint: process.env.COA_ENDPOINT,
12
+ refreshToken: process.env.COA_REFRESH_TOKEN
13
+ })
14
+ }
15
+ );
16
+
17
+ service.couponTicket({
18
+ theaterCode: '120',
19
+ couponCode: '12345abcde',
20
+ dateJouei: '20240827',
21
+ titleCode: '99511',
22
+ titleBranchNum: '0',
23
+ timeBegin: '2200',
24
+ flgMember: '0'
25
+ }).then((result) => {
26
+ fs.writeFileSync(`${__dirname}/output/couponTicket.json`, JSON.stringify(result, null, ' '));
27
+ console.log(result);
28
+ }).catch((err) => {
29
+ console.error(err);
30
+ });
@@ -11,14 +11,14 @@ const service = new COA.service.Master(
11
11
  endpoint: process.env.COA_ENDPOINT,
12
12
  refreshToken: process.env.COA_REFRESH_TOKEN
13
13
  })
14
- },
14
+ }
15
15
  // { timeout: 1000 }
16
16
  );
17
17
 
18
18
  service.schedule({
19
- theaterCode: '120',
20
- begin: '20200213',
21
- end: '20200218'
19
+ theaterCode: '020',
20
+ begin: '20240426',
21
+ end: '20240428'
22
22
  }).then((result) => {
23
23
  fs.writeFileSync(`${__dirname}/output/schedule.json`, JSON.stringify(result, null, ' '));
24
24
  console.log(result);
@@ -16,11 +16,11 @@ const service = new COA.service.Reserve(
16
16
 
17
17
  service.salesTicket({
18
18
  theaterCode: '120',
19
- dateJouei: '20230309',
20
- titleCode: '99100',
19
+ dateJouei: '20240827',
20
+ titleCode: '99511',
21
21
  titleBranchNum: '0',
22
- timeBegin: '1720',
23
- flgMember: '1'
22
+ timeBegin: '2200',
23
+ flgMember: '0'
24
24
  }).then((result) => {
25
25
  fs.writeFileSync(`${__dirname}/output/salesTicket2.json`, JSON.stringify(result, null, ' '));
26
26
  console.log(result);
@@ -125,6 +125,12 @@ export interface ITitleResult {
125
125
  * ※2024/02/09追加
126
126
  */
127
127
  dateMgtkBegin?: string;
128
+ /**
129
+ * 割引対象外フラグ
130
+ * 1:割引対象外
131
+ * ※2024/08/19追加
132
+ */
133
+ flgNotDiscount?: string;
128
134
  }
129
135
  /**
130
136
  * スクリーンマスター抽出in
@@ -670,3 +670,137 @@ export interface ISalesTicketResult {
670
670
  */
671
671
  addGlasses: number;
672
672
  }
673
+ /**
674
+ * クーポンチケット情報in
675
+ */
676
+ export interface ICouponTicketArgs {
677
+ /**
678
+ * 施設コード
679
+ */
680
+ theaterCode: string;
681
+ /**
682
+ * クーポンコード
683
+ * ※英数字10桁
684
+ */
685
+ couponCode: string;
686
+ /**
687
+ * 上映日
688
+ */
689
+ dateJouei: string;
690
+ /**
691
+ * 作品コード
692
+ */
693
+ titleCode: string;
694
+ /**
695
+ * 作品枝番
696
+ */
697
+ titleBranchNum: string;
698
+ /**
699
+ * 上映開始時刻
700
+ */
701
+ timeBegin: string;
702
+ /**
703
+ * 会員用フラグ
704
+ * 1:会員専用チケットも表示する。会員以外の場合は0をセット
705
+ */
706
+ flgMember: FlgMember;
707
+ }
708
+ export interface ICouponTicket {
709
+ /**
710
+ * チケットコード
711
+ */
712
+ ticketCode: string;
713
+ /**
714
+ * チケット名
715
+ */
716
+ ticketName: string;
717
+ /**
718
+ * チケット名(カナ)
719
+ */
720
+ ticketNameKana: string;
721
+ /**
722
+ * チケット名(英)
723
+ */
724
+ ticketNameEng: string;
725
+ /**
726
+ * 標準単価
727
+ */
728
+ stdPrice: number;
729
+ /**
730
+ * 加算単価
731
+ * 3D,IMAX、4DX等の加算料金
732
+ */
733
+ addPrice: number;
734
+ /**
735
+ * 割引金額
736
+ * 割引券区分=000(定額割引)の場合のみ、以外は0
737
+ * ※2024/08/22訂正
738
+ */
739
+ disPrice: number;
740
+ /**
741
+ * 販売単価
742
+ * 標準単価+加算単価-割引金額
743
+ */
744
+ salePrice: number;
745
+ /**
746
+ * 人数制限
747
+ * 制限が無い場合は1
748
+ */
749
+ limitCount: number;
750
+ /**
751
+ * 制限単位
752
+ * 1:n人単位、2:n人以上
753
+ */
754
+ limitUnit: string;
755
+ /**
756
+ * チケット備考
757
+ * 注意事項等
758
+ */
759
+ ticketNote: string;
760
+ /**
761
+ * メガネ単価
762
+ * 3Dの場合、メガネ代をセット。それ以外は0をセット
763
+ */
764
+ addGlasses: number;
765
+ }
766
+ /**
767
+ * クーポンチケット情報out
768
+ */
769
+ export interface ICouponTicketResult {
770
+ /**
771
+ * ステータス
772
+ * 0:認証OK、0以外は認証失敗
773
+ */
774
+ status: string;
775
+ /**
776
+ * メッセージ
777
+ * ステータスに対するメッセージ
778
+ */
779
+ message?: string;
780
+ /**
781
+ * 回数制限
782
+ * 利用できる回数(0:制限なし)
783
+ * ※将来的な項目です。現時点では未使用(固定値「0」を返却)
784
+ */
785
+ cntLimit: number;
786
+ /**
787
+ * 割引券区分
788
+ * 000:定額割引、001:額面割引
789
+ * ※2024/08/22訂正
790
+ */
791
+ kbnDiscount: string;
792
+ /**
793
+ * 枚数制限
794
+ * 同時に利用できる枚数(0:制限なし)
795
+ */
796
+ cntDiscount: number;
797
+ /**
798
+ * 有効期限
799
+ * ※日付は西暦8桁 "YYYYMMDD"、無期限の場合は日付なし
800
+ */
801
+ dateExpiration: string;
802
+ /**
803
+ * 利用可能チケット情報リスト
804
+ */
805
+ listTicket: ICouponTicket[];
806
+ }
@@ -45,8 +45,8 @@ class MasterService extends service_1.Service {
45
45
  method: 'GET'
46
46
  }, [http_status_1.OK]);
47
47
  return (Array.isArray(body.list_title))
48
- ? body.list_title.map(({ title_code, title_branch_num, title_name, title_name_kana, title_name_eng, title_name_short, title_name_orig, kbn_eirin, kbn_eizou, kbn_joueihousiki, kbn_jimakufukikae, show_time, date_begin, date_end, flg_mvtk_use, date_mvtk_begin, flg_mgtk_use, date_mgtk_begin }) => {
49
- return Object.assign(Object.assign({ titleCode: title_code, titleBranchNum: title_branch_num, titleName: title_name, titleNameKana: title_name_kana, titleNameEng: title_name_eng, titleNameShort: title_name_short, titleNameOrig: title_name_orig, kbnEirin: kbn_eirin, kbnEizou: kbn_eizou, kbnJoueihousiki: kbn_joueihousiki, kbnJimakufukikae: kbn_jimakufukikae, showTime: show_time, dateBegin: date_begin, dateEnd: date_end, flgMvtkUse: flg_mvtk_use, dateMvtkBegin: date_mvtk_begin }, (typeof flg_mgtk_use === 'string') ? { flgMgtkUse: flg_mgtk_use } : /* istanbul ignore next */ undefined), (typeof date_mgtk_begin === 'string') ? { dateMgtkBegin: date_mgtk_begin } : /* istanbul ignore next */ undefined);
48
+ ? body.list_title.map(({ title_code, title_branch_num, title_name, title_name_kana, title_name_eng, title_name_short, title_name_orig, kbn_eirin, kbn_eizou, kbn_joueihousiki, kbn_jimakufukikae, show_time, date_begin, date_end, flg_mvtk_use, date_mvtk_begin, flg_mgtk_use, date_mgtk_begin, flg_not_discount }) => {
49
+ return Object.assign(Object.assign(Object.assign({ titleCode: title_code, titleBranchNum: title_branch_num, titleName: title_name, titleNameKana: title_name_kana, titleNameEng: title_name_eng, titleNameShort: title_name_short, titleNameOrig: title_name_orig, kbnEirin: kbn_eirin, kbnEizou: kbn_eizou, kbnJoueihousiki: kbn_joueihousiki, kbnJimakufukikae: kbn_jimakufukikae, showTime: show_time, dateBegin: date_begin, dateEnd: date_end, flgMvtkUse: flg_mvtk_use, dateMvtkBegin: date_mvtk_begin }, (typeof flg_mgtk_use === 'string') ? { flgMgtkUse: flg_mgtk_use } : /* istanbul ignore next */ undefined), (typeof date_mgtk_begin === 'string') ? { dateMgtkBegin: date_mgtk_begin } : /* istanbul ignore next */ undefined), (typeof flg_not_discount === 'string') ? { flgNotDiscount: flg_not_discount } : /* istanbul ignore next */ undefined);
50
50
  })
51
51
  : /* istanbul ignore next */ [];
52
52
  });
@@ -1,4 +1,4 @@
1
- import * as ReserveFactory from '../factory/reserve';
1
+ import { ICountFreeSeatArgs, ICountFreeSeatResult, ICouponTicketArgs, ICouponTicketResult, IDelReserveArgs, IDelTmpReserveArgs, ISalesTicketArgs, ISalesTicketResult, IStateReserveArgs, IStateReserveResult, IStateReserveSeatArgs, IStateReserveSeatResult, IUpdReserveArgs, IUpdReserveResult, IUpdTmpReserveSeatArgs, IUpdTmpReserveSeatResult } from '../factory/reserve';
2
2
  import { Service } from '../service';
3
3
  /**
4
4
  * 予約サービス
@@ -10,7 +10,7 @@ export declare class ReserveService extends Service {
10
10
  * @param args.begin 空席情報を抽出する上映日の開始日 ※日付は西暦8桁 'YYYYMMDD'
11
11
  * @param args.end 空席情報を抽出する上映日の終了日 ※日付は西暦8桁 'YYYYMMDD'
12
12
  */
13
- countFreeSeat(args: ReserveFactory.ICountFreeSeatArgs): Promise<ReserveFactory.ICountFreeSeatResult>;
13
+ countFreeSeat(args: ICountFreeSeatArgs): Promise<ICountFreeSeatResult>;
14
14
  /**
15
15
  * 座席予約状態抽出
16
16
  * @param args.theaterCode 施設コード
@@ -20,7 +20,7 @@ export declare class ReserveService extends Service {
20
20
  * @param args.timeBegin 上映時刻
21
21
  * @param args.screenCode スクリーンコード
22
22
  */
23
- stateReserveSeat(args: ReserveFactory.IStateReserveSeatArgs): Promise<ReserveFactory.IStateReserveSeatResult>;
23
+ stateReserveSeat(args: IStateReserveSeatArgs): Promise<IStateReserveSeatResult>;
24
24
  /**
25
25
  * 座席仮予約
26
26
  * @param args.theaterCode 劇場コード
@@ -33,7 +33,7 @@ export declare class ReserveService extends Service {
33
33
  * @param args.screenCode.seatSection 座席セクション
34
34
  * @param args.screenCode.seatNum 座席番号
35
35
  */
36
- updTmpReserveSeat(args: ReserveFactory.IUpdTmpReserveSeatArgs): Promise<ReserveFactory.IUpdTmpReserveSeatResult>;
36
+ updTmpReserveSeat(args: IUpdTmpReserveSeatArgs): Promise<IUpdTmpReserveSeatResult>;
37
37
  /**
38
38
  * 座席仮予約削除
39
39
  * @param args.theaterCode 施設コード
@@ -43,7 +43,7 @@ export declare class ReserveService extends Service {
43
43
  * @param args.timeBegin 上映時刻
44
44
  * @param args.tmpReserveNum 座席チケット仮予約番号
45
45
  */
46
- delTmpReserve(args: ReserveFactory.IDelTmpReserveArgs): Promise<void>;
46
+ delTmpReserve(args: IDelTmpReserveArgs): Promise<void>;
47
47
  /**
48
48
  * 座席本予約
49
49
  * @param args.theaterCode 施設コード
@@ -79,7 +79,7 @@ export declare class ReserveService extends Service {
79
79
  * @param args.listTicket.mvtkSalesPrice ムビチケ・MG販売単価
80
80
  * @param args.listTicket.kbnMgtk MGチケット区分
81
81
  */
82
- updReserve(args: ReserveFactory.IUpdReserveArgs): Promise<ReserveFactory.IUpdReserveResult>;
82
+ updReserve(args: IUpdReserveArgs): Promise<IUpdReserveResult>;
83
83
  /**
84
84
  * 購入チケット取り消し
85
85
  * @param args.theaterCode 施設コード
@@ -94,14 +94,14 @@ export declare class ReserveService extends Service {
94
94
  * @param args.screenCode.seatSection 座席セクション
95
95
  * @param args.screenCode.seatNum 座席番号
96
96
  */
97
- delReserve(args: ReserveFactory.IDelReserveArgs): Promise<void>;
97
+ delReserve(args: IDelReserveArgs): Promise<void>;
98
98
  /**
99
99
  * 購入チケット内容抽出
100
100
  * @param args.theaterCode 施設コード
101
101
  * @param args.reserveNum 座席チケット購入番号
102
102
  * @param args.telNum 電話番号
103
103
  */
104
- stateReserve(args: ReserveFactory.IStateReserveArgs): Promise<ReserveFactory.IStateReserveResult | null>;
104
+ stateReserve(args: IStateReserveArgs): Promise<IStateReserveResult | null>;
105
105
  /**
106
106
  * 販売可能チケット情報
107
107
  * @param args.theaterCode 施設コード
@@ -111,5 +111,9 @@ export declare class ReserveService extends Service {
111
111
  * @param args.timeBegin 上映時刻
112
112
  * @param args.flgMember 会員用フラグ
113
113
  */
114
- salesTicket(args: ReserveFactory.ISalesTicketArgs): Promise<ReserveFactory.ISalesTicketResult[]>;
114
+ salesTicket(args: ISalesTicketArgs): Promise<ISalesTicketResult[]>;
115
+ /**
116
+ * クーポンチケット情報
117
+ */
118
+ couponTicket(args: ICouponTicketArgs): Promise<ICouponTicketResult>;
115
119
  }
@@ -11,7 +11,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.ReserveService = void 0;
13
13
  const http_status_1 = require("http-status");
14
- const ReserveFactory = require("../factory/reserve");
14
+ const reserve_1 = require("../factory/reserve");
15
15
  const service_1 = require("../service");
16
16
  /**
17
17
  * 予約サービス
@@ -339,7 +339,7 @@ class ReserveService extends service_1.Service {
339
339
  title_branch_num: args.titleBranchNum,
340
340
  time_begin: args.timeBegin,
341
341
  // 念のため互換性を保つ次期アップデートでデフォルト値削除
342
- flg_member: (args.flgMember === undefined) ? ReserveFactory.FlgMember.NonMember : args.flgMember
342
+ flg_member: (args.flgMember === undefined) ? reserve_1.FlgMember.NonMember : args.flgMember
343
343
  }
344
344
  }, [http_status_1.OK]);
345
345
  return body.list_ticket.map((value) => {
@@ -359,5 +359,50 @@ class ReserveService extends service_1.Service {
359
359
  });
360
360
  });
361
361
  }
362
+ /**
363
+ * クーポンチケット情報
364
+ */
365
+ couponTicket(args) {
366
+ return __awaiter(this, void 0, void 0, function* () {
367
+ const body = yield this.request({
368
+ uri: `/api/v1/theater/${args.theaterCode}/coupon_ticket/`,
369
+ method: 'GET',
370
+ qs: {
371
+ coupon_code: args.couponCode,
372
+ date_jouei: args.dateJouei,
373
+ title_code: args.titleCode,
374
+ title_branch_num: args.titleBranchNum,
375
+ time_begin: args.timeBegin,
376
+ flg_member: args.flgMember
377
+ }
378
+ }, [http_status_1.OK]);
379
+ return {
380
+ status: String(body.status),
381
+ message: body.message,
382
+ cntLimit: body.cnt_limit,
383
+ kbnDiscount: body.kbn_discount,
384
+ cntDiscount: body.cnt_discount,
385
+ dateExpiration: body.date_expiration,
386
+ listTicket: (Array.isArray(body.list_ticket))
387
+ ? body.list_ticket.map((value) => {
388
+ return {
389
+ ticketCode: value.ticket_code,
390
+ ticketName: value.ticket_name,
391
+ ticketNameKana: value.ticket_name_kana,
392
+ ticketNameEng: value.ticket_name_eng,
393
+ stdPrice: value.std_price,
394
+ addPrice: value.add_price,
395
+ disPrice: value.dis_price,
396
+ salePrice: value.sale_price,
397
+ limitCount: value.limit_count,
398
+ limitUnit: value.limit_unit,
399
+ ticketNote: value.ticket_note,
400
+ addGlasses: value.add_glasses
401
+ };
402
+ })
403
+ : /* istanbul ignore next */ []
404
+ };
405
+ });
406
+ }
362
407
  }
363
408
  exports.ReserveService = ReserveService;
package/package.json CHANGED
@@ -76,5 +76,5 @@
76
76
  "postversion": "git push origin --tags",
77
77
  "prepublishOnly": "npm run clean && npm run build && npm test && npm run doc"
78
78
  },
79
- "version": "9.4.0"
79
+ "version": "9.5.0-alpha.0"
80
80
  }