@up-im/medotvet_sdk 0.0.19 → 0.0.21

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.
package/README.md CHANGED
@@ -77,7 +77,10 @@ const client = createClient({
77
77
  сортировка по приоритету.
78
78
  - `getBookmarks({ page?, select? })` — избранные опросы, 401 без
79
79
  авторизации.
80
- - `getOne({ id })` — опрос с вопросами.
80
+ - `getOne({ id })` — опрос с вопросами и текущее прохождение,
81
+ ответ `{ item: iSurvey, userSurvey: iUserSurvey | null }`.
82
+ Если `userSurvey` не null и статус `in_progress` — опрос уже начат,
83
+ используй `userSurvey.id` для `saveAnswer()`/`cancel()`.
81
84
  - `start(surveyId, signal?)` — начать прохождение, ответ
82
85
  `{ success, userSurvey }`.
83
86
  - `saveAnswer({ userSurveyId, questionIndex, answer, signal? })` —
@@ -87,12 +90,13 @@ const client = createClient({
87
90
  - `getHistory({ page? })` — история прохождений.
88
91
 
89
92
  ### payment
90
- - `addSBP({ sum, bank })` — заявка на выплату через СБП, вернёт
91
- `iPayment`.
92
- - `addCard({ sum, card_number })` — заявка на карту, вернёт `iPayment`.
93
+ - `add({ sum })` — заявка на выплату. Реквизиты выплат (карта/СБП/счёт)
94
+ пользователь указывает сам на странице верификации SolarStaff.
93
95
  - `getList({ page?, select })` — список выплат, сортировка `id desc`.
94
96
  - `balance()` — баланс и суммы начислений/выплат.
95
- - `getVerificationUrl()` — ссылка на KYC SolarStaff и признак `verified`.
97
+ - `getVerificationUrl()` — ссылка на KYC-страницу SolarStaff, где
98
+ пользователь проходит верификацию и добавляет платёжные реквизиты.
99
+ Возвращает `{ url, verified }`.
96
100
  - `checkVerificationStatus()` — статус KYC:
97
101
  `not_started|pending|active|blocked` + текст.
98
102
 
@@ -4,22 +4,14 @@ import { iPayment } from "../interfaces/iPayment";
4
4
  import { iBalance } from "../interfaces/iBalance";
5
5
  export declare class ApiPayment extends ApiAbstract {
6
6
  /**
7
- * добавление запроса на выплату по системе быстрых платежей
8
- * * @param {number} props.sum - сумма выплаты
9
- * * @param {number} props.bank - id банка из справочника content.getBanks
7
+ * Добавление запроса на выплату.
8
+ * Реквизиты выплаты (карта/СБП/счёт) пользователь добавляет сам
9
+ * на странице верификации SolarStaff (см. getVerificationUrl) в этот
10
+ * запрос они не передаются.
11
+ * @param {number} props.sum - сумма выплаты
10
12
  */
11
- addSBP(props: {
13
+ add(props: {
12
14
  sum: number;
13
- bank: number;
14
- }): Promise<iPayment>;
15
- /**
16
- * добавление запроса на выплату по номеру карты
17
- * * @param {number} props.sum - сумма выплаты
18
- * * @param {number} props.card_number - номер карты
19
- */
20
- addCard(props: {
21
- sum: number;
22
- card_number: number;
23
15
  }): Promise<iPayment>;
24
16
  /**
25
17
  * список начислений
@@ -36,8 +28,8 @@ export declare class ApiPayment extends ApiAbstract {
36
28
  */
37
29
  balance(): Promise<iBalance>;
38
30
  /**
39
- * Получить URL для верификации в SolarStaff
40
- * Необходимо для получения выплат
31
+ * Получить URL страницы верификации в SolarStaff.
32
+ * На этой же странице пользователь добавляет реквизиты выплат.
41
33
  */
42
34
  getVerificationUrl(): Promise<{
43
35
  url: string;
@@ -3,35 +3,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ApiPayment = void 0;
4
4
  const abstract_1 = require("./abstract");
5
5
  const apiRoute_1 = require("../http/apiRoute");
6
- const payoutType_1 = require("../interfaces/payoutType");
7
6
  const apiError_1 = require("../http/apiError");
8
7
  class ApiPayment extends abstract_1.ApiAbstract {
9
8
  /**
10
- * добавление запроса на выплату по системе быстрых платежей
11
- * * @param {number} props.sum - сумма выплаты
12
- * * @param {number} props.bank - id банка из справочника content.getBanks
9
+ * Добавление запроса на выплату.
10
+ * Реквизиты выплаты (карта/СБП/счёт) пользователь добавляет сам
11
+ * на странице верификации SolarStaff (см. getVerificationUrl) в этот
12
+ * запрос они не передаются.
13
+ * @param {number} props.sum - сумма выплаты
13
14
  */
14
- async addSBP(props) {
15
+ async add(props) {
15
16
  if (!await this.userStorage.isAuth())
16
17
  throw new apiError_1.ApiError(401, "Пользователь не авторизован");
17
18
  const data = await this.fetcher({
18
19
  route: apiRoute_1.apiRoutePaymentAdd,
19
- postBody: { ...props, type: payoutType_1.PayoutType.sbp },
20
- options: { addToken: true }
21
- });
22
- return data.payment;
23
- }
24
- /**
25
- * добавление запроса на выплату по номеру карты
26
- * * @param {number} props.sum - сумма выплаты
27
- * * @param {number} props.card_number - номер карты
28
- */
29
- async addCard(props) {
30
- if (!await this.userStorage.isAuth())
31
- throw new apiError_1.ApiError(401, "Пользователь не авторизован");
32
- const data = await this.fetcher({
33
- route: apiRoute_1.apiRoutePaymentAdd,
34
- postBody: { ...props, type: payoutType_1.PayoutType.card },
20
+ postBody: props,
35
21
  options: { addToken: true }
36
22
  });
37
23
  return data.payment;
@@ -64,8 +50,8 @@ class ApiPayment extends abstract_1.ApiAbstract {
64
50
  });
65
51
  }
66
52
  /**
67
- * Получить URL для верификации в SolarStaff
68
- * Необходимо для получения выплат
53
+ * Получить URL страницы верификации в SolarStaff.
54
+ * На этой же странице пользователь добавляет реквизиты выплат.
69
55
  */
70
56
  async getVerificationUrl() {
71
57
  if (!await this.userStorage.isAuth())
package/dist/api/user.js CHANGED
@@ -81,8 +81,13 @@ class ApiUser extends abstract_1.ApiAbstract {
81
81
  postBody: data,
82
82
  options: { addToken: true }
83
83
  });
84
- if (data.firstname?.length && data.lastname?.length) {
85
- await this.userStorage.saveUser({ firstname: data.firstname, lastname: data.lastname });
84
+ const updates = {};
85
+ if (data.firstname?.length)
86
+ updates["firstname"] = data.firstname;
87
+ if (data.lastname?.length)
88
+ updates["lastname"] = data.lastname;
89
+ if (Object.keys(updates).length) {
90
+ await this.userStorage.saveUser(updates);
86
91
  }
87
92
  return true;
88
93
  }
@@ -1,6 +1,5 @@
1
1
  import { PaymentStatus, PaymentStatusKeys } from "./paymentStatus";
2
2
  import { PaymentType, PaymentTypeKeys } from "./paymentType";
3
- import { PayoutType, PayoutTypeKeys } from "./payoutType";
4
3
  export interface iPayment {
5
4
  id: number;
6
5
  reg_date: string;
@@ -14,7 +13,6 @@ export interface iPayment {
14
13
  shop: number | null;
15
14
  cashback_level: 0 | 1 | 2 | 3;
16
15
  max_cashback_level: null | 0 | 1 | 2 | 3;
17
- payout_type: typeof PayoutType[PayoutTypeKeys] | null;
18
16
  last_error: string;
19
17
  price: number;
20
18
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@up-im/medotvet_sdk",
3
- "version": "0.0.19",
3
+ "version": "0.0.21",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -8,98 +8,85 @@ import {
8
8
  } from "../http/apiRoute"
9
9
  import { iPagingItems } from "../interfaces/iPagingItems"
10
10
  import { iPayment } from "../interfaces/iPayment"
11
- import { PayoutType } from "../interfaces/payoutType"
12
11
  import { ApiError } from "../http/apiError"
13
12
  import { iBalance } from "../interfaces/iBalance"
14
13
 
15
14
  export class ApiPayment extends ApiAbstract {
16
- /**
17
- * добавление запроса на выплату по системе быстрых платежей
18
- * * @param {number} props.sum - сумма выплаты
19
- * * @param {number} props.bank - id банка из справочника content.getBanks
20
- */
21
- async addSBP(props: { sum: number, bank: number }) {
22
- if (!await this.userStorage.isAuth()) throw new ApiError(401, "Пользователь не авторизован")
23
- const data = await this.fetcher<{ payment: iPayment }>({
24
- route: apiRoutePaymentAdd,
25
- postBody: { ...props, type: PayoutType.sbp },
26
- options: { addToken: true }
27
- })
28
- return data.payment
29
- }
30
- /**
31
- * добавление запроса на выплату по номеру карты
32
- * * @param {number} props.sum - сумма выплаты
33
- * * @param {number} props.card_number - номер карты
34
- */
35
- async addCard(props: { sum: number, card_number: number }) {
36
- if (!await this.userStorage.isAuth()) throw new ApiError(401, "Пользователь не авторизован")
37
- const data = await this.fetcher<{ payment: iPayment }>({
38
- route: apiRoutePaymentAdd,
39
- postBody: { ...props, type: PayoutType.card },
40
- options: { addToken: true }
41
- })
42
- return data.payment
43
- }
44
- /**
45
- * список начислений
46
- * * @param {number} page - отсчет страниц с первой, чтобы не было путаницы
47
- */
48
- async getList<Keys extends keyof iPayment>({
49
- page = 1,
50
- select,
51
- }: {
52
- page: number
53
- select: Keys[],
54
- }) {
55
- if (!await this.userStorage.isAuth()) throw new ApiError(401, "Пользователь не авторизован")
56
- return await this.fetcher<iPagingItems<Pick<iPayment, Keys>>>({
57
- route: apiRoutePaymentList({
58
- page,
59
- sorters: ["id desc"],
60
- select
61
- }),
62
- options: { addToken: true }
63
- })
64
- }
65
- /**
66
- * баланс пользователя
67
- */
68
- async balance() {
69
- if (!await this.userStorage.isAuth()) throw new ApiError(401, "Пользователь не авторизован")
70
- return await this.fetcher<iBalance>({
71
- route: apiRoutePaymentBalance,
72
- options: { addToken: true }
73
- })
74
- }
15
+ /**
16
+ * Добавление запроса на выплату.
17
+ * Реквизиты выплаты (карта/СБП/счёт) пользователь добавляет сам
18
+ * на странице верификации SolarStaff (см. getVerificationUrl) в этот
19
+ * запрос они не передаются.
20
+ * @param {number} props.sum - сумма выплаты
21
+ */
22
+ async add(props: { sum: number }) {
23
+ if (!await this.userStorage.isAuth()) throw new ApiError(401, "Пользователь не авторизован")
24
+ const data = await this.fetcher<{ payment: iPayment }>({
25
+ route: apiRoutePaymentAdd,
26
+ postBody: props,
27
+ options: { addToken: true }
28
+ })
29
+ return data.payment
30
+ }
31
+ /**
32
+ * список начислений
33
+ * * @param {number} page - отсчет страниц с первой, чтобы не было путаницы
34
+ */
35
+ async getList<Keys extends keyof iPayment>({
36
+ page = 1,
37
+ select,
38
+ }: {
39
+ page: number
40
+ select: Keys[],
41
+ }) {
42
+ if (!await this.userStorage.isAuth()) throw new ApiError(401, "Пользователь не авторизован")
43
+ return await this.fetcher<iPagingItems<Pick<iPayment, Keys>>>({
44
+ route: apiRoutePaymentList({
45
+ page,
46
+ sorters: ["id desc"],
47
+ select
48
+ }),
49
+ options: { addToken: true }
50
+ })
51
+ }
52
+ /**
53
+ * баланс пользователя
54
+ */
55
+ async balance() {
56
+ if (!await this.userStorage.isAuth()) throw new ApiError(401, "Пользователь не авторизован")
57
+ return await this.fetcher<iBalance>({
58
+ route: apiRoutePaymentBalance,
59
+ options: { addToken: true }
60
+ })
61
+ }
75
62
 
76
- /**
77
- * Получить URL для верификации в SolarStaff
78
- * Необходимо для получения выплат
79
- */
80
- async getVerificationUrl() {
81
- if (!await this.userStorage.isAuth()) throw new ApiError(401, "Пользователь не авторизован")
82
- return await this.fetcher<{
83
- url: string,
84
- verified: boolean
85
- }>({
86
- route: apiRoutePaymentVerificationUrl,
87
- options: { addToken: true }
88
- })
89
- }
63
+ /**
64
+ * Получить URL страницы верификации в SolarStaff.
65
+ * На этой же странице пользователь добавляет реквизиты выплат.
66
+ */
67
+ async getVerificationUrl() {
68
+ if (!await this.userStorage.isAuth()) throw new ApiError(401, "Пользователь не авторизован")
69
+ return await this.fetcher<{
70
+ url: string,
71
+ verified: boolean
72
+ }>({
73
+ route: apiRoutePaymentVerificationUrl,
74
+ options: { addToken: true }
75
+ })
76
+ }
90
77
 
91
- /**
92
- * Проверить статус верификации пользователя в SolarStaff
93
- */
94
- async checkVerificationStatus() {
95
- if (!await this.userStorage.isAuth()) throw new ApiError(401, "Пользователь не авторизован")
96
- return await this.fetcher<{
97
- verified: boolean,
98
- status: "not_started" | "pending" | "active" | "blocked",
99
- message: string
100
- }>({
101
- route: apiRoutePaymentVerificationStatus,
102
- options: { addToken: true }
103
- })
104
- }
105
- }
78
+ /**
79
+ * Проверить статус верификации пользователя в SolarStaff
80
+ */
81
+ async checkVerificationStatus() {
82
+ if (!await this.userStorage.isAuth()) throw new ApiError(401, "Пользователь не авторизован")
83
+ return await this.fetcher<{
84
+ verified: boolean,
85
+ status: "not_started" | "pending" | "active" | "blocked",
86
+ message: string
87
+ }>({
88
+ route: apiRoutePaymentVerificationStatus,
89
+ options: { addToken: true }
90
+ })
91
+ }
92
+ }
package/src/api/user.ts CHANGED
@@ -81,8 +81,11 @@ export class ApiUser extends ApiAbstract {
81
81
  postBody: data,
82
82
  options: { addToken: true }
83
83
  })
84
- if (data.firstname?.length && data.lastname?.length) {
85
- await this.userStorage.saveUser({ firstname: data.firstname, lastname: data.lastname })
84
+ const updates: Record<string, string> = {}
85
+ if (data.firstname?.length) updates["firstname"] = data.firstname
86
+ if (data.lastname?.length) updates["lastname"] = data.lastname
87
+ if (Object.keys(updates).length) {
88
+ await this.userStorage.saveUser(updates)
86
89
  }
87
90
  return true
88
91
  } catch (error) {
@@ -1,6 +1,5 @@
1
1
  import { PaymentStatus, PaymentStatusKeys } from "./paymentStatus";
2
2
  import { PaymentType, PaymentTypeKeys } from "./paymentType";
3
- import { PayoutType, PayoutTypeKeys } from "./payoutType";
4
3
 
5
4
 
6
5
  export interface iPayment {
@@ -17,10 +16,9 @@ export interface iPayment {
17
16
  sku: number | null//id акции
18
17
  shop: number | null//id аптеки
19
18
  cashback_level: 0 | 1 | 2 | 3//уровень кэшбека по которому произошло начисление
20
- max_cashback_level: null | 0 | 1 | 2 | 3 //макс. возможный уровень кэшбека по акции, поле есть только у начислений в чеках
19
+ max_cashback_level: null | 0 | 1 | 2 | 3 //макс. возможный уровень кэшбека по акции, поле есть только у начислений в чеках
21
20
 
22
21
  //списание
23
- payout_type: typeof PayoutType[PayoutTypeKeys] | null //способ выплаты
24
22
  last_error: string//текст ошибки выплаты
25
23
 
26
24
  //размер