@cinerino/sdk 15.0.0-alpha.9 → 16.0.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.
Files changed (32) hide show
  1. package/lib/abstract/chevreAdmin/movieTheater.d.ts +32 -14
  2. package/lib/abstract/chevreAdmin/order.d.ts +3 -23
  3. package/lib/abstract/chevreAdmin/order.js +2 -6
  4. package/lib/abstract/chevreAdmin/reservation.d.ts +2 -1
  5. package/lib/abstract/chevreConsole/accountingReport.d.ts +5 -5
  6. package/lib/abstract/chevreConsole/accountingReport.js +2 -9
  7. package/lib/abstract/chevreConsole/iam.d.ts +9 -58
  8. package/lib/abstract/chevreConsole/iam.js +16 -92
  9. package/lib/abstract/chevreConsole/offerCatalog.js +0 -32
  10. package/lib/abstract/chevreConsole/offerCatalogItem.d.ts +0 -29
  11. package/lib/abstract/chevreConsole/offerCatalogItem.js +0 -28
  12. package/lib/abstract/chevreConsole/order/factory.d.ts +91 -4
  13. package/lib/abstract/chevreConsole/order.d.ts +0 -5
  14. package/lib/abstract/chevreConsole/order.js +0 -12
  15. package/lib/abstract/chevreConsole/person.d.ts +6 -54
  16. package/lib/abstract/chevreConsole/person.js +5 -65
  17. package/lib/abstract/chevreTxn/offer.d.ts +1 -1
  18. package/lib/abstract/cinerino/service/place.d.ts +0 -5
  19. package/lib/abstract/cinerino/service/place.js +0 -16
  20. package/lib/abstract/cloud/admin/movieTheater.d.ts +15 -0
  21. package/lib/abstract/cloud/admin/movieTheater.js +51 -0
  22. package/lib/abstract/cloud/admin/order.d.ts +10 -14
  23. package/lib/abstract/cloud/admin/order.js +33 -5
  24. package/lib/abstract/cloud/admin/reservation.d.ts +3 -2
  25. package/lib/abstract/cloud/admin/reservation.js +1 -1
  26. package/lib/abstract/cloud/admin.d.ts +9 -0
  27. package/lib/abstract/cloud/admin.js +9 -0
  28. package/lib/abstract/cloud/search/place.d.ts +10 -0
  29. package/lib/abstract/cloud/search/place.js +13 -0
  30. package/lib/bundle.js +4 -4
  31. package/lib/bundle.js.map +4 -4
  32. package/package.json +2 -2
@@ -3,11 +3,18 @@ import { Service } from '../service';
3
3
  interface IFixSellerQuery {
4
4
  sellerId: string;
5
5
  }
6
+ /**
7
+ * 施設検索条件
8
+ */
6
9
  export interface IFindParams {
7
10
  /**
11
+ * min: 1
8
12
  * max: 20
9
13
  */
10
14
  limit: number;
15
+ /**
16
+ * min: 1
17
+ */
11
18
  page: number;
12
19
  id?: string;
13
20
  branchCode?: string;
@@ -16,7 +23,7 @@ export interface IFindParams {
16
23
  sellerId?: string;
17
24
  additionalPropertyName?: string;
18
25
  }
19
- type IMovieTheaterAsFindResult = Pick<factory.place.movieTheater.IPlace, 'additionalProperty' | 'branchCode' | 'id' | 'kanaName' | 'name' | 'parentOrganization' | 'telephone' | 'url' | 'offers'>;
26
+ export type IMovieTheaterAsFindResult = Pick<factory.place.movieTheater.IPlace, 'additionalProperty' | 'branchCode' | 'id' | 'kanaName' | 'name' | 'parentOrganization' | 'telephone' | 'url' | 'offers'>;
20
27
  type IUpsertingMovieTheater = Pick<factory.place.movieTheater.IPlace, 'branchCode' | 'kanaName' | 'telephone' | 'url'> & {
21
28
  additionalProperty: factory.propertyValue.IPropertyValue<string>[];
22
29
  name: Pick<factory.multilingualString, 'en' | 'ja'>;
@@ -34,7 +41,29 @@ type IUpsertingMovieTheater = Pick<factory.place.movieTheater.IPlace, 'branchCod
34
41
  interface IFixMovieTheaterQuery {
35
42
  movieTheaterId: string;
36
43
  }
37
- type IEntranceGateAsFindResult = Pick<factory.place.movieTheater.IEntranceGate, 'identifier' | 'name'>;
44
+ /**
45
+ * 入場ゲート検索条件
46
+ */
47
+ export interface IFindEntranceGateParams {
48
+ /**
49
+ * 施設ID
50
+ */
51
+ movieTheaterId: string;
52
+ /**
53
+ * min: 1
54
+ * max: 20
55
+ */
56
+ limit: number;
57
+ /**
58
+ * min: 1
59
+ */
60
+ page: number;
61
+ /**
62
+ * コード完全一致
63
+ */
64
+ identifier?: string;
65
+ }
66
+ export type IEntranceGateAsFindResult = Pick<factory.place.movieTheater.IEntranceGate, 'identifier' | 'name'>;
38
67
  type ICreatingEntranceGate = Pick<factory.place.movieTheater.IEntranceGate, 'identifier' | 'name'>;
39
68
  type IDeletingEntranceGate = Pick<factory.place.movieTheater.IEntranceGate, 'identifier'>;
40
69
  /**
@@ -56,18 +85,7 @@ export declare class MovieTheaterService extends Service {
56
85
  /**
57
86
  * 施設の入場ゲート検索
58
87
  */
59
- findEntranceGates(params: {
60
- /**
61
- * 施設ID
62
- */
63
- movieTheaterId: string;
64
- /**
65
- * max: 20
66
- */
67
- limit: number;
68
- page: number;
69
- identifier?: string;
70
- }): Promise<IEntranceGateAsFindResult[]>;
88
+ findEntranceGates(params: IFindEntranceGateParams): Promise<IEntranceGateAsFindResult[]>;
71
89
  /**
72
90
  * コードによる複数入場ゲート冪等編集
73
91
  */
@@ -1,12 +1,6 @@
1
- import { IAcceptedOffer, IOrderAsSearchResult, IOrderAsSearchWithUnwindAcceptedOffersResult, IReturner, ISearchOrdersOptions, IUpdateChangeableAttributesParams } from '../chevreConsole/order/factory';
1
+ import { IAcceptedOffer, IOrderAsSearchResult, IOrderAsFindAcceptedOffersResult, IReturner, IFindParams, IProjection, IUpdateChangeableAttributesParams } from '../chevreConsole/order/factory';
2
2
  import { factory } from '../factory';
3
- import { ISearchResult, Service } from '../service';
4
- type IKeyOfProjection = keyof factory.order.IOrder | '_id';
5
- /**
6
- * 注文検索時projection
7
- * 0->1(2024-07-29~)
8
- */
9
- type IProjection = Partial<Record<IKeyOfProjection, 1>>;
3
+ import { Service } from '../service';
10
4
  /**
11
5
  * 注文サービス
12
6
  */
@@ -18,20 +12,7 @@ export declare class OrderService extends Service {
18
12
  /**
19
13
  * 注文を検索する
20
14
  */
21
- search(params: Omit<factory.order.ISearchConditions, 'project' | 'provider'> & {
22
- $projection?: IProjection;
23
- $projectDisabled?: '1';
24
- } & ISearchOrdersOptions & {
25
- /**
26
- * min: 1
27
- * max: 20
28
- */
29
- limit: number;
30
- /**
31
- * min: 1
32
- */
33
- page: number;
34
- }): Promise<ISearchResult<IOrderAsSearchResult[] | IOrderAsSearchWithUnwindAcceptedOffersResult[]>>;
15
+ findOrders(params: IFindParams): Promise<IOrderAsSearchResult[] | IOrderAsFindAcceptedOffersResult[]>;
35
16
  /**
36
17
  * 注文取得
37
18
  */
@@ -66,4 +47,3 @@ export declare class OrderService extends Service {
66
47
  page?: number;
67
48
  }): Promise<IAcceptedOffer[]>;
68
49
  }
69
- export {};
@@ -22,18 +22,14 @@ class OrderService extends service_1.Service {
22
22
  /**
23
23
  * 注文を検索する
24
24
  */
25
- async search(params) {
25
+ async findOrders(params) {
26
26
  return this.fetch({
27
27
  uri: '/orders',
28
28
  method: 'GET',
29
29
  qs: params,
30
30
  expectedStatusCodes: [http_status_1.status.OK]
31
31
  })
32
- .then(async (response) => {
33
- return {
34
- data: await response.json()
35
- };
36
- });
32
+ .then(async (response) => response.json());
37
33
  }
38
34
  /**
39
35
  * 注文取得
@@ -7,7 +7,7 @@ export interface IUseActionResult {
7
7
  /**
8
8
  * 予約検索条件
9
9
  */
10
- type IFindParams = Pick<factory.reservation.eventReservation.ISearchConditions, 'typeOf' | 'bookingFrom' | 'bookingThrough' | 'ids' | 'reservationNumbers' | 'reservationStatuses' | 'attended' | 'checkedIn'> & {
10
+ type IFindParams = Pick<factory.reservation.eventReservation.ISearchConditions, 'bookingFrom' | 'bookingThrough' | 'ids' | 'reservationNumbers' | 'reservationStatuses' | 'attended' | 'checkedIn'> & {
11
11
  additionalTicketText?: string;
12
12
  broker?: {
13
13
  id?: string;
@@ -25,6 +25,7 @@ type IFindParams = Pick<factory.reservation.eventReservation.ISearchConditions,
25
25
  };
26
26
  };
27
27
  reservationFor?: Pick<factory.reservation.eventReservation.IReservationForSearchConditions, 'startFrom' | 'startThrough' | 'ids'> & {
28
+ id?: string;
28
29
  location?: {
29
30
  branchCodes?: string[];
30
31
  };
@@ -1,11 +1,11 @@
1
1
  import { factory } from '../factory';
2
- import { ISearchResult, Service } from '../service';
2
+ import { Service } from '../service';
3
+ type IFindParams = Pick<factory.report.accountingReport.ISearchConditions, 'limit' | 'order' | 'page'>;
4
+ type IReportAsFindResult = factory.report.accountingReport.IReport;
3
5
  /**
4
6
  * 経理レポートサービス
5
7
  */
6
8
  export declare class AccountingReportService extends Service {
7
- /**
8
- * 検索
9
- */
10
- search(params: Omit<factory.report.accountingReport.ISearchConditions, 'project'>): Promise<ISearchResult<factory.report.accountingReport.IReport[]>>;
9
+ findAccountingReports(params: IFindParams): Promise<IReportAsFindResult[]>;
11
10
  }
11
+ export {};
@@ -7,21 +7,14 @@ const service_1 = require("../service");
7
7
  * 経理レポートサービス
8
8
  */
9
9
  class AccountingReportService extends service_1.Service {
10
- /**
11
- * 検索
12
- */
13
- async search(params) {
10
+ async findAccountingReports(params) {
14
11
  return this.fetch({
15
12
  uri: '/accountingReports',
16
13
  method: 'GET',
17
14
  qs: params,
18
15
  expectedStatusCodes: [http_status_1.status.OK]
19
16
  })
20
- .then(async (response) => {
21
- return {
22
- data: await response.json()
23
- };
24
- });
17
+ .then(async (response) => response.json());
25
18
  }
26
19
  }
27
20
  exports.AccountingReportService = AccountingReportService;
@@ -4,59 +4,22 @@ import { ISearchResult, Service } from '../service';
4
4
  * IAMサービス
5
5
  */
6
6
  export declare class IAMService extends Service {
7
- /**
8
- * ユーザー検索
9
- */
10
- searchUsers(params: {
11
- id?: string;
12
- username?: string;
13
- email?: string;
14
- telephone?: string;
15
- givenName?: string;
16
- familyName?: string;
17
- }): Promise<ISearchResult<factory.person.IPerson[]>>;
18
- /**
19
- * ユーザー取得
20
- */
21
- findUserById(params: {
22
- id: string;
23
- }): Promise<factory.person.IPerson>;
24
- /**
25
- * プロフィール検索
26
- */
27
- getUserProfile(params: {
28
- id: string;
29
- }): Promise<factory.person.IProfile>;
30
- /**
31
- * プロフィール更新
32
- */
33
- updateUserProfile(params: factory.person.IProfile & {
34
- id: string;
35
- }): Promise<void>;
36
7
  /**
37
8
  * IAMロール検索
38
9
  */
39
- projectRoles(params: factory.role.organizationRole.ISearchConditions): Promise<factory.role.organizationRole.IRole[]>;
10
+ findRoles(params: factory.role.organizationRole.ISearchConditions): Promise<factory.role.organizationRole.IRole[]>;
40
11
  /**
41
12
  * IAMメンバー作成
42
13
  */
43
- createMember(params: factory.iam.IMember[]): Promise<void>;
14
+ addProjectMember(params: factory.iam.IMember[]): Promise<void>;
44
15
  /**
45
16
  * IAMプロジェクトメンバー検索
46
17
  */
47
- searchProjectMembers(params: factory.iam.ISearchConditions): Promise<ISearchResult<factory.iam.IMember[]>>;
48
- /**
49
- * IAMメンバー取得
50
- */
51
- findMemberById(params: {
52
- member: {
53
- id: string;
54
- };
55
- }): Promise<factory.iam.IMember>;
18
+ findProjectMembers(params: factory.iam.ISearchConditions): Promise<factory.iam.IMember[]>;
56
19
  /**
57
20
  * IAMメンバー更新
58
21
  */
59
- updateMember(params: {
22
+ updateProjectMember(params: {
60
23
  member: {
61
24
  id: string;
62
25
  hasRole: {
@@ -71,27 +34,11 @@ export declare class IAMService extends Service {
71
34
  /**
72
35
  * IAMメンバー削除
73
36
  */
74
- deleteMember(params: {
37
+ deleteProjectMember(params: {
75
38
  member: {
76
39
  id: string;
77
40
  };
78
41
  }): Promise<void>;
79
- /**
80
- * IAMメンバープロフィール検索
81
- */
82
- getMemberProfile(params: {
83
- member: {
84
- id: string;
85
- };
86
- }): Promise<factory.person.IProfile>;
87
- /**
88
- * IAMメンバープロフィール更新
89
- */
90
- updateMemberProfile(params: {
91
- member: factory.person.IProfile & {
92
- id: string;
93
- };
94
- }): Promise<void>;
95
42
  /**
96
43
  * カスタマーメンバー検索
97
44
  * project.id:*を含む
@@ -114,4 +61,8 @@ export declare class IAMService extends Service {
114
61
  }): Promise<ISearchResult<{
115
62
  member: Pick<factory.iam.IMemberOfRole, 'hasRole' | 'id' | 'name' | 'memberOf'>;
116
63
  }[]>>;
64
+ /**
65
+ * プロジェクトメンバーとしてのme(リクエストユーザー自身)を参照する
66
+ */
67
+ findMeAsProjectMember(): Promise<factory.iam.IMember>;
117
68
  }
@@ -7,60 +7,10 @@ const service_1 = require("../service");
7
7
  * IAMサービス
8
8
  */
9
9
  class IAMService extends service_1.Service {
10
- /**
11
- * ユーザー検索
12
- */
13
- async searchUsers(params) {
14
- return this.fetch({
15
- uri: '/iam/users',
16
- method: 'GET',
17
- qs: params,
18
- expectedStatusCodes: [http_status_1.status.OK]
19
- })
20
- .then(async (response) => {
21
- return {
22
- data: await response.json()
23
- };
24
- });
25
- }
26
- /**
27
- * ユーザー取得
28
- */
29
- async findUserById(params) {
30
- return this.fetch({
31
- uri: `/iam/users/${params.id}`,
32
- method: 'GET',
33
- expectedStatusCodes: [http_status_1.status.OK]
34
- })
35
- .then(async (response) => response.json());
36
- }
37
- /**
38
- * プロフィール検索
39
- */
40
- async getUserProfile(params) {
41
- return this.fetch({
42
- uri: `/iam/users/${params.id}/profile`,
43
- method: 'GET',
44
- expectedStatusCodes: [http_status_1.status.OK]
45
- })
46
- .then(async (response) => response.json());
47
- }
48
- /**
49
- * プロフィール更新
50
- */
51
- async updateUserProfile(params) {
52
- const { id, ...query } = params; // eslint-disable-line @typescript-eslint/no-unused-vars
53
- await this.fetch({
54
- uri: `/iam/users/${params.id}/profile`,
55
- method: 'PATCH',
56
- body: query,
57
- expectedStatusCodes: [http_status_1.status.NO_CONTENT]
58
- });
59
- }
60
10
  /**
61
11
  * IAMロール検索
62
12
  */
63
- async projectRoles(params) {
13
+ async findRoles(params) {
64
14
  return this.fetch({
65
15
  uri: '/iam/roles',
66
16
  method: 'GET',
@@ -72,7 +22,7 @@ class IAMService extends service_1.Service {
72
22
  /**
73
23
  * IAMメンバー作成
74
24
  */
75
- async createMember(params) {
25
+ async addProjectMember(params) {
76
26
  await this.fetch({
77
27
  uri: '/iam/members',
78
28
  method: 'POST',
@@ -83,34 +33,19 @@ class IAMService extends service_1.Service {
83
33
  /**
84
34
  * IAMプロジェクトメンバー検索
85
35
  */
86
- async searchProjectMembers(params) {
36
+ async findProjectMembers(params) {
87
37
  return this.fetch({
88
38
  uri: '/iam/members',
89
39
  method: 'GET',
90
40
  qs: params,
91
41
  expectedStatusCodes: [http_status_1.status.OK]
92
- })
93
- .then(async (response) => {
94
- return {
95
- data: await response.json()
96
- };
97
- });
98
- }
99
- /**
100
- * IAMメンバー取得
101
- */
102
- async findMemberById(params) {
103
- return this.fetch({
104
- uri: `/iam/members/${params.member.id}`,
105
- method: 'GET',
106
- expectedStatusCodes: [http_status_1.status.OK]
107
42
  })
108
43
  .then(async (response) => response.json());
109
44
  }
110
45
  /**
111
46
  * IAMメンバー更新
112
47
  */
113
- async updateMember(params) {
48
+ async updateProjectMember(params) {
114
49
  await this.fetch({
115
50
  uri: `/iam/members/${params.member.id}`,
116
51
  method: 'PUT',
@@ -121,35 +56,13 @@ class IAMService extends service_1.Service {
121
56
  /**
122
57
  * IAMメンバー削除
123
58
  */
124
- async deleteMember(params) {
59
+ async deleteProjectMember(params) {
125
60
  await this.fetch({
126
61
  uri: `/iam/members/${params.member.id}`,
127
62
  method: 'DELETE',
128
63
  expectedStatusCodes: [http_status_1.status.NO_CONTENT]
129
64
  });
130
65
  }
131
- /**
132
- * IAMメンバープロフィール検索
133
- */
134
- async getMemberProfile(params) {
135
- return this.fetch({
136
- uri: `/iam/members/${params.member.id}/profile`,
137
- method: 'GET',
138
- expectedStatusCodes: [http_status_1.status.OK]
139
- })
140
- .then(async (response) => response.json());
141
- }
142
- /**
143
- * IAMメンバープロフィール更新
144
- */
145
- async updateMemberProfile(params) {
146
- await this.fetch({
147
- uri: `/iam/members/${params.member.id}/profile`,
148
- method: 'PATCH',
149
- body: params.member,
150
- expectedStatusCodes: [http_status_1.status.NO_CONTENT]
151
- });
152
- }
153
66
  /**
154
67
  * カスタマーメンバー検索
155
68
  * project.id:*を含む
@@ -167,5 +80,16 @@ class IAMService extends service_1.Service {
167
80
  };
168
81
  });
169
82
  }
83
+ /**
84
+ * プロジェクトメンバーとしてのme(リクエストユーザー自身)を参照する
85
+ */
86
+ async findMeAsProjectMember() {
87
+ return this.fetch({
88
+ uri: '/iam/members/me',
89
+ method: 'GET',
90
+ expectedStatusCodes: [http_status_1.status.OK]
91
+ })
92
+ .then(async (response) => response.json());
93
+ }
170
94
  }
171
95
  exports.IAMService = IAMService;
@@ -49,38 +49,6 @@ class OfferCatalogService extends service_1.Service {
49
49
  // expectedStatusCodes: [status.NO_CONTENT]
50
50
  // });
51
51
  // }
52
- // discontinue(2026-02-05~)
53
- // /**
54
- // * IDリストでカタログ複数編集
55
- // * 要素のpush,pullを同時指定した場合400
56
- // */
57
- // public async updateManyOfferCatalogsByIds(
58
- // params: {
59
- // id: { $in: string[] };
60
- // $push: {
61
- // itemListElement: {
62
- // $each: factory.offerCatalog.IItemListElementAsAggregateOffer[];
63
- // };
64
- // };
65
- // $pull: {
66
- // itemListElement: {
67
- // $elemMatch: { id: { $in: string[] } };
68
- // };
69
- // };
70
- // },
71
- // options: {
72
- // itemOfferedTypeOf: factory.product.ProductType; // required(2025-10-16~)
73
- // }
74
- // ): Promise<void> {
75
- // const { itemOfferedTypeOf } = options;
76
- // await this.fetch({
77
- // uri: `/offerCatalogs`,
78
- // method: 'PATCH',
79
- // body: params,
80
- // qs: { itemOfferedTypeOf },
81
- // expectedStatusCodes: [status.NO_CONTENT]
82
- // });
83
- // }
84
52
  /**
85
53
  * カタログ削除
86
54
  */
@@ -13,44 +13,15 @@ type IOfferCatalogAsSearchResult = Pick<factory.offerCatalog.IOfferCatalog, 'id'
13
13
  type IItemListElement = Pick<factory.unitPriceOffer.IUnitPriceOffer, 'id' | 'identifier' | 'name' | 'alternateName' | 'priceSpecification' | 'typeOf'> & {
14
14
  sortIndex?: number;
15
15
  };
16
- interface ICreateResult {
17
- id: string;
18
- }
19
16
  /**
20
17
  * サブカタログサービス
21
18
  */
22
19
  export declare class OfferCatalogItemService extends Service {
23
- create(params: factory.offerCatalog.IUpdateOfferCatalogItemParams): Promise<ICreateResult>;
24
20
  search(params: Omit<factory.offerCatalog.ISearchConditions, 'project'> & {
25
21
  $projection?: {
26
22
  [key in keyof factory.offerCatalog.IOfferCatalog]?: 0 | 1;
27
23
  };
28
24
  }): Promise<IOfferCatalogAsSearchResult[]>;
29
- update(params: factory.offerCatalog.IUpdateOfferCatalogItemParams & {
30
- id: string;
31
- }): Promise<void>;
32
- /**
33
- * サブカタログ複数編集
34
- */
35
- updateMany(params: {
36
- id: {
37
- $in: string[];
38
- };
39
- $push: {
40
- itemListElement: {
41
- $each: factory.offerCatalog.IItemListElement[];
42
- };
43
- };
44
- $pull: {
45
- itemListElement: {
46
- $elemMatch: {
47
- id: {
48
- $in: string[];
49
- };
50
- };
51
- };
52
- };
53
- }): Promise<void>;
54
25
  deleteById(params: {
55
26
  id: string;
56
27
  }): Promise<void>;
@@ -7,15 +7,6 @@ const service_1 = require("../service");
7
7
  * サブカタログサービス
8
8
  */
9
9
  class OfferCatalogItemService extends service_1.Service {
10
- async create(params) {
11
- return this.fetch({
12
- uri: '/offerCatalogItems',
13
- method: 'POST',
14
- body: params,
15
- expectedStatusCodes: [http_status_1.status.CREATED]
16
- })
17
- .then(async (response) => response.json());
18
- }
19
10
  async search(params) {
20
11
  return this.fetch({
21
12
  uri: '/offerCatalogItems',
@@ -25,25 +16,6 @@ class OfferCatalogItemService extends service_1.Service {
25
16
  })
26
17
  .then(async (response) => response.json());
27
18
  }
28
- async update(params) {
29
- await this.fetch({
30
- uri: `/offerCatalogItems/${encodeURIComponent(String(params.id))}`,
31
- method: 'PUT',
32
- body: params,
33
- expectedStatusCodes: [http_status_1.status.NO_CONTENT]
34
- });
35
- }
36
- /**
37
- * サブカタログ複数編集
38
- */
39
- async updateMany(params) {
40
- await this.fetch({
41
- uri: `/offerCatalogItems`,
42
- method: 'PATCH',
43
- body: params,
44
- expectedStatusCodes: [http_status_1.status.NO_CONTENT]
45
- });
46
- }
47
19
  async deleteById(params) {
48
20
  await this.fetch({
49
21
  uri: `/offerCatalogItems/${encodeURIComponent(String(params.id))}`,