b5-api-client 0.0.21 → 0.0.23

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.
@@ -1,4 +1,4 @@
1
- import { CreateOrderRequest, CreateUserRequest, Order, OrderResponse, TakeOrderRequest, TestEventParams, UpdateOrderRequest, TransactionStatusResponse, RateUserRequest, OrderEventsResponse, PushNotificationsRegisterRequest, ConfigResponse, DashboardMetricsResponse, UsersResponse, GetOrdersParams, CreateDisputeRequest, DisputesResponse } from './types';
1
+ import { CreateOrderRequest, CreateUserRequest, Order, OrderResponse, TakeOrderRequest, TestEventParams, UpdateOrderRequest, TransactionStatusResponse, RateUserRequest, OrderEventsResponse, PushNotificationsRegisterRequest, ConfigResponse, DashboardMetricsResponse, UsersResponse, GetOrdersParams, CreateDisputeRequest, DisputesResponse, OrderOffersResponse, TransactionRequest, KioscoinOperationResponse, UpdateUserSettingsRequest } from './types';
2
2
  declare class P2PMarketplaceAPIClient {
3
3
  private readonly client;
4
4
  private readonly defaultHeaders;
@@ -15,10 +15,13 @@ declare class P2PMarketplaceAPIClient {
15
15
  createUser(user: CreateUserRequest, headers?: Record<string, string>): Promise<UsersResponse>;
16
16
  getUser(userId: string, headers?: Record<string, string>): Promise<UsersResponse>;
17
17
  rateUser(rateUserRequest: RateUserRequest, headers?: Record<string, string>): Promise<any>;
18
+ updateUserSettings(request: UpdateUserSettingsRequest, headers?: Record<string, string>): Promise<UsersResponse>;
18
19
  registerPushToken(registerRequest: PushNotificationsRegisterRequest, headers?: Record<string, string>): Promise<any>;
19
20
  getConfig<T>(): Promise<ConfigResponse<T>>;
20
21
  getOrderEvents(id: string, headers?: Record<string, string>): Promise<OrderEventsResponse>;
21
22
  getDashboardMetrics(headers?: Record<string, string>): Promise<DashboardMetricsResponse>;
23
+ getOrderOffers(headers?: Record<string, string>): Promise<OrderOffersResponse>;
24
+ pointOfSaleTransact(request: TransactionRequest, headers?: Record<string, string>): Promise<KioscoinOperationResponse>;
22
25
  testLockFunds(order: Order, testParams?: TestEventParams, headers?: Record<string, string>): Promise<void>;
23
26
  testReleaseFunds(order: Order, testParams?: TestEventParams, headers?: Record<string, string>): Promise<void>;
24
27
  releaseFunds(order: Order, testParams?: TestEventParams, headers?: Record<string, string>): Promise<string>;
@@ -151,6 +151,12 @@ class P2PMarketplaceAPIClient {
151
151
  return this.post(url, rateUserRequest, headers);
152
152
  });
153
153
  }
154
+ updateUserSettings(request, headers) {
155
+ return __awaiter(this, void 0, void 0, function* () {
156
+ const url = '/api/users/settings';
157
+ return this.post(url, request, headers);
158
+ });
159
+ }
154
160
  registerPushToken(registerRequest, headers) {
155
161
  return __awaiter(this, void 0, void 0, function* () {
156
162
  const url = `/api/notifications/register-push`;
@@ -175,6 +181,18 @@ class P2PMarketplaceAPIClient {
175
181
  return this.get(url, headers);
176
182
  });
177
183
  }
184
+ getOrderOffers(headers) {
185
+ return __awaiter(this, void 0, void 0, function* () {
186
+ const url = '/api/order_offers';
187
+ return this.get(url, headers);
188
+ });
189
+ }
190
+ pointOfSaleTransact(request, headers) {
191
+ return __awaiter(this, void 0, void 0, function* () {
192
+ const url = '/api/point_of_sale/transact';
193
+ return this.post(url, request, headers);
194
+ });
195
+ }
178
196
  testLockFunds(order, testParams, headers) {
179
197
  var _a, _b, _c, _d;
180
198
  return __awaiter(this, void 0, void 0, function* () {
package/dist/types.d.ts CHANGED
@@ -43,6 +43,8 @@ export interface Order {
43
43
  sellerCanDispute?: boolean;
44
44
  buyerDisputed?: boolean;
45
45
  sellerDisputed?: boolean;
46
+ escrowOrder?: EscrowOrderModel;
47
+ dispute?: Dispute[];
46
48
  }
47
49
  export interface OrderResponse {
48
50
  orders: Order[];
@@ -50,6 +52,14 @@ export interface OrderResponse {
50
52
  export interface UsersResponse {
51
53
  users: KioscoinUser[];
52
54
  }
55
+ export interface UserSettings {
56
+ preferredTokenCode?: string;
57
+ paymentMethods: PaymentMethod[];
58
+ }
59
+ export interface UpdateUserSettingsRequest {
60
+ userId: string;
61
+ settings: UserSettings;
62
+ }
53
63
  export interface PaymentMethod {
54
64
  type: string;
55
65
  alias?: string;
@@ -239,6 +249,7 @@ export interface KioscoinUser {
239
249
  timeToRelease?: number;
240
250
  timeToFiatSent?: number;
241
251
  reviews?: UserReview[];
252
+ settings?: UserSettings;
242
253
  }
243
254
  export type DisputeReason = 'SELLER_NOT_LOCKING' | 'BUYER_FIAT_NOT_SENT' | 'SELLER_NOT_RELEASING';
244
255
  export interface CreateDisputeRequest {
@@ -260,3 +271,71 @@ export interface Dispute {
260
271
  export interface DisputesResponse {
261
272
  disputes: Dispute[];
262
273
  }
274
+ export interface OrderOffer {
275
+ id: string;
276
+ type: OrderType;
277
+ tokenAmount: string;
278
+ exchangeMethods: PaymentMethod[];
279
+ tokenCode: string;
280
+ blockchain: string;
281
+ fiatCode: string;
282
+ fiatAmount: string;
283
+ title: string;
284
+ actionButtonDescription: string;
285
+ exchangeRateOfferId?: string;
286
+ }
287
+ export interface OrderOffersResponse {
288
+ offers: OrderOffer[];
289
+ }
290
+ export interface TransactionRequest {
291
+ offer: OrderOffer;
292
+ buyerAddress?: string;
293
+ }
294
+ export type EscrowOrderStatus = 'NON_EXISTING' | 'LOCKED' | 'RELEASED' | 'REFUNDED';
295
+ export interface EscrowOrderModel {
296
+ id: string;
297
+ timestamp?: string;
298
+ tokenContractAddress?: string;
299
+ buyerAddress?: string;
300
+ sellerAddress?: string;
301
+ amount?: string;
302
+ fee?: string;
303
+ status?: EscrowOrderStatus;
304
+ adminAction?: boolean;
305
+ token?: string;
306
+ }
307
+ export interface ExchangeRateOffer {
308
+ id: string;
309
+ tokenCode: string;
310
+ blockchainEnvironment: string;
311
+ fiatCode: string;
312
+ baseFiatRate: string;
313
+ offeredFiatRate: string;
314
+ margin: string;
315
+ validUntil: string;
316
+ isActive: boolean;
317
+ createdAt: string;
318
+ }
319
+ export interface KioscoinOperation {
320
+ orderType: OrderType;
321
+ tokenAmount: string;
322
+ fiatAmount: string;
323
+ tokenCode: string;
324
+ fiatCode: string;
325
+ blockchain: string;
326
+ userId: string;
327
+ username?: string;
328
+ buyerAddress?: string;
329
+ paymentMethods?: PaymentMethod[];
330
+ orderOffer?: OrderOffer;
331
+ exchangeRateOffer?: ExchangeRateOffer;
332
+ }
333
+ export type OperationErrorType = 'INVALID_TRANSACTION' | 'HAS_ACTIVE_ORDERS' | 'INSUFFICIENT_FUNDS' | 'UNKNOWN_ERROR';
334
+ export interface OperationError {
335
+ type: OperationErrorType;
336
+ message: string;
337
+ }
338
+ export interface KioscoinOperationResponse {
339
+ error?: OperationError;
340
+ order?: Order;
341
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "b5-api-client",
3
- "version": "0.0.21",
3
+ "version": "0.0.23",
4
4
  "description": "Escrow Backend API client",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1,5 +1,5 @@
1
1
  import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';
2
- import { CreateOrderRequest, CreateUserRequest, Order, OrderLockedEvent, OrderResponse, ReleaseOrderEvent as OrderReleasedEvent, TakeOrderRequest, TestEventParams, UpdateOrderRequest, TransactionStatusResponse, RateUserRequest, OrderEventsResponse, PushNotificationsRegisterRequest, ConfigResponse, DashboardMetricsResponse, KioscoinUser, UsersResponse, PaymentMethod, GetOrdersParams, CreateDisputeRequest, DisputesResponse } from './types';
2
+ import { CreateOrderRequest, CreateUserRequest, Order, OrderLockedEvent, OrderResponse, ReleaseOrderEvent as OrderReleasedEvent, TakeOrderRequest, TestEventParams, UpdateOrderRequest, TransactionStatusResponse, RateUserRequest, OrderEventsResponse, PushNotificationsRegisterRequest, ConfigResponse, DashboardMetricsResponse, KioscoinUser, UsersResponse, PaymentMethod, GetOrdersParams, CreateDisputeRequest, DisputesResponse, OrderOffersResponse, TransactionRequest, KioscoinOperationResponse, UpdateUserSettingsRequest } from './types';
3
3
  import { isPlainObject, camelCase, snakeCase, transform } from 'lodash';
4
4
 
5
5
  class P2PMarketplaceAPIClient {
@@ -137,6 +137,11 @@ class P2PMarketplaceAPIClient {
137
137
  return this.post<any>(url, rateUserRequest, headers);
138
138
  }
139
139
 
140
+ public async updateUserSettings(request: UpdateUserSettingsRequest, headers?: Record<string, string>): Promise<UsersResponse> {
141
+ const url = '/api/users/settings';
142
+ return this.post<UsersResponse>(url, request, headers);
143
+ }
144
+
140
145
  public async registerPushToken(registerRequest: PushNotificationsRegisterRequest, headers?: Record<string, string>): Promise<any> {
141
146
  const url = `/api/notifications/register-push`;
142
147
  return this.post<PushNotificationsRegisterRequest>(url, registerRequest, headers);
@@ -157,6 +162,18 @@ class P2PMarketplaceAPIClient {
157
162
  return this.get<DashboardMetricsResponse>(url, headers);
158
163
  }
159
164
 
165
+ public async getOrderOffers(headers?: Record<string, string>): Promise<OrderOffersResponse> {
166
+ const url = '/api/order_offers';
167
+ return this.get<OrderOffersResponse>(url, headers);
168
+ }
169
+
170
+ public async pointOfSaleTransact(request: TransactionRequest, headers?: Record<string, string>): Promise<KioscoinOperationResponse> {
171
+ const url = '/api/point_of_sale/transact';
172
+ return this.post<KioscoinOperationResponse>(url, request, headers);
173
+ }
174
+
175
+
176
+
160
177
  public async testLockFunds(order: Order, testParams?: TestEventParams, headers?: Record<string, string>) {
161
178
  const orderEvent: OrderLockedEvent = {
162
179
  type: "LOCKED",
package/src/types.ts CHANGED
@@ -63,6 +63,8 @@ export interface Order {
63
63
  sellerCanDispute?: boolean;
64
64
  buyerDisputed?: boolean;
65
65
  sellerDisputed?: boolean;
66
+ escrowOrder?: EscrowOrderModel;
67
+ dispute?: Dispute[];
66
68
  }
67
69
 
68
70
  export interface OrderResponse {
@@ -73,6 +75,16 @@ export interface UsersResponse {
73
75
  users: KioscoinUser[]
74
76
  }
75
77
 
78
+ export interface UserSettings {
79
+ preferredTokenCode?: string;
80
+ paymentMethods: PaymentMethod[];
81
+ }
82
+
83
+ export interface UpdateUserSettingsRequest {
84
+ userId: string;
85
+ settings: UserSettings;
86
+ }
87
+
76
88
  export interface PaymentMethod {
77
89
  type: string;
78
90
  alias?: string;
@@ -289,6 +301,7 @@ export interface KioscoinUser {
289
301
  timeToRelease?: number;
290
302
  timeToFiatSent?: number;
291
303
  reviews?: UserReview[];
304
+ settings?: UserSettings;
292
305
  }
293
306
 
294
307
  export type DisputeReason = 'SELLER_NOT_LOCKING' | 'BUYER_FIAT_NOT_SENT' | 'SELLER_NOT_RELEASING';
@@ -314,3 +327,82 @@ export interface Dispute {
314
327
  export interface DisputesResponse {
315
328
  disputes: Dispute[];
316
329
  }
330
+
331
+
332
+ export interface OrderOffer {
333
+ id: string;
334
+ type: OrderType;
335
+ tokenAmount: string;
336
+ exchangeMethods: PaymentMethod[];
337
+ tokenCode: string;
338
+ blockchain: string;
339
+ fiatCode: string;
340
+ fiatAmount: string;
341
+ title: string;
342
+ actionButtonDescription: string;
343
+ exchangeRateOfferId?: string;
344
+ }
345
+
346
+ export interface OrderOffersResponse {
347
+ offers: OrderOffer[];
348
+ }
349
+
350
+ export interface TransactionRequest {
351
+ offer: OrderOffer;
352
+ buyerAddress?: string;
353
+ }
354
+
355
+ export type EscrowOrderStatus = 'NON_EXISTING' | 'LOCKED' | 'RELEASED' | 'REFUNDED';
356
+
357
+ export interface EscrowOrderModel {
358
+ id: string;
359
+ timestamp?: string;
360
+ tokenContractAddress?: string;
361
+ buyerAddress?: string;
362
+ sellerAddress?: string;
363
+ amount?: string;
364
+ fee?: string;
365
+ status?: EscrowOrderStatus;
366
+ adminAction?: boolean;
367
+ token?: string;
368
+ }
369
+
370
+ export interface ExchangeRateOffer {
371
+ id: string;
372
+ tokenCode: string;
373
+ blockchainEnvironment: string;
374
+ fiatCode: string;
375
+ baseFiatRate: string;
376
+ offeredFiatRate: string;
377
+ margin: string;
378
+ validUntil: string;
379
+ isActive: boolean;
380
+ createdAt: string;
381
+ }
382
+
383
+ export interface KioscoinOperation {
384
+ orderType: OrderType;
385
+ tokenAmount: string;
386
+ fiatAmount: string;
387
+ tokenCode: string;
388
+ fiatCode: string;
389
+ blockchain: string;
390
+ userId: string;
391
+ username?: string;
392
+ buyerAddress?: string;
393
+ paymentMethods?: PaymentMethod[];
394
+ orderOffer?: OrderOffer;
395
+ exchangeRateOffer?: ExchangeRateOffer;
396
+ }
397
+
398
+ export type OperationErrorType = 'INVALID_TRANSACTION' | 'HAS_ACTIVE_ORDERS' | 'INSUFFICIENT_FUNDS' | 'UNKNOWN_ERROR';
399
+
400
+ export interface OperationError {
401
+ type: OperationErrorType;
402
+ message: string;
403
+ }
404
+
405
+ export interface KioscoinOperationResponse {
406
+ error?: OperationError;
407
+ order?: Order;
408
+ }