b5-api-client 0.0.22 → 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, OrderOffersResponse, TransactionRequest } 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,12 +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>;
22
23
  getOrderOffers(headers?: Record<string, string>): Promise<OrderOffersResponse>;
23
- pointOfSaleTransact(request: TransactionRequest, headers?: Record<string, string>): Promise<any>;
24
+ pointOfSaleTransact(request: TransactionRequest, headers?: Record<string, string>): Promise<KioscoinOperationResponse>;
24
25
  testLockFunds(order: Order, testParams?: TestEventParams, headers?: Record<string, string>): Promise<void>;
25
26
  testReleaseFunds(order: Order, testParams?: TestEventParams, headers?: Record<string, string>): Promise<void>;
26
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`;
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 {
@@ -280,3 +291,51 @@ export interface TransactionRequest {
280
291
  offer: OrderOffer;
281
292
  buyerAddress?: string;
282
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.22",
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, OrderOffersResponse, TransactionRequest } 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);
@@ -162,9 +167,9 @@ class P2PMarketplaceAPIClient {
162
167
  return this.get<OrderOffersResponse>(url, headers);
163
168
  }
164
169
 
165
- public async pointOfSaleTransact(request: TransactionRequest, headers?: Record<string, string>): Promise<any> {
170
+ public async pointOfSaleTransact(request: TransactionRequest, headers?: Record<string, string>): Promise<KioscoinOperationResponse> {
166
171
  const url = '/api/point_of_sale/transact';
167
- return this.post<TransactionRequest>(url, request, headers);
172
+ return this.post<KioscoinOperationResponse>(url, request, headers);
168
173
  }
169
174
 
170
175
 
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';
@@ -338,3 +351,58 @@ export interface TransactionRequest {
338
351
  offer: OrderOffer;
339
352
  buyerAddress?: string;
340
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
+ }