@riocrypto/common-server 1.0.694 → 1.0.697

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.
@@ -16,7 +16,9 @@ const kapstar_client_1 = require("../clients/kapstar-client");
16
16
  const currency_api_client_1 = require("../clients/currency-api-client");
17
17
  const partner_1 = require("../models/partner");
18
18
  const user_1 = require("../models/user");
19
+ const order_1 = require("../models/order");
19
20
  const getPlatformAndPartnerFees = (mongoose, amountFiat, fiat, processor, country, partnerId, brokerCustomerId, user) => __awaiter(void 0, void 0, void 0, function* () {
21
+ var _a;
20
22
  let platformFeeFiat;
21
23
  let platformFeeFiatTax = 0;
22
24
  let partnerFeeFiat = 0;
@@ -56,8 +58,40 @@ const getPlatformAndPartnerFees = (mongoose, amountFiat, fiat, processor, countr
56
58
  partnerFeeFiat = amountFiat * partner.partnerFee;
57
59
  }
58
60
  else if (user === null || user === void 0 ? void 0 : user.platformFeeRanges) {
61
+ let volume;
62
+ if ((_a = user === null || user === void 0 ? void 0 : user.attributes) === null || _a === void 0 ? void 0 : _a.includes(common_1.UserAttribute.summedVolumeFees)) {
63
+ const startDate = new Date();
64
+ startDate.setDate(startDate.getDate() - 14); // Subtract 14 days from current date
65
+ const Order = (0, order_1.buildOrder)(mongoose);
66
+ const buyOrders = yield Order.find({
67
+ userId: user.id,
68
+ type: common_1.Side.Buy,
69
+ status: common_1.OrderStatus.Complete,
70
+ createdAt: { $gte: startDate },
71
+ });
72
+ const sellOrders = yield Order.find({
73
+ userId: user.id,
74
+ type: common_1.Side.Buy,
75
+ status: common_1.OrderStatus.Complete,
76
+ createdAt: { $gte: startDate },
77
+ });
78
+ volume =
79
+ sellOrders.reduce((sum, order) => {
80
+ var _a, _b, _c, _d, _e;
81
+ return sum +
82
+ (order.amountFiat +
83
+ ((((_a = order.fees) === null || _a === void 0 ? void 0 : _a.partnerFeeFiat) || 0) +
84
+ (((_b = order.fees) === null || _b === void 0 ? void 0 : _b.platformFeeFiat) || 0) +
85
+ (((_c = order.fees) === null || _c === void 0 ? void 0 : _c.platformFeeFiatTax) || 0) +
86
+ (((_d = order.fees) === null || _d === void 0 ? void 0 : _d.processingFeeFiat) || 0) +
87
+ (((_e = order.fees) === null || _e === void 0 ? void 0 : _e.transferFeeFiat) || 0)) || 0);
88
+ }, 0) + buyOrders.reduce((sum, order) => sum + order.amountFiat, 0);
89
+ }
90
+ else {
91
+ volume = Number(amountUSD);
92
+ }
59
93
  for (const range of user.platformFeeRanges) {
60
- if (range.min <= Number(amountUSD) && range.max >= Number(amountUSD)) {
94
+ if (range.min <= Number(volume) && range.max >= Number(volume)) {
61
95
  platformFeeFiat = amountFiat * range.fee;
62
96
  break;
63
97
  }
@@ -23,6 +23,7 @@ interface OrderAttrs {
23
23
  depositTxId?: string;
24
24
  withdrawalTxId?: string;
25
25
  brokerCustomerId?: string;
26
+ conversionRateToUSD?: number;
26
27
  }
27
28
  interface OrderDoc extends Document {
28
29
  userId: string;
@@ -47,6 +48,7 @@ interface OrderDoc extends Document {
47
48
  depositTxId?: string;
48
49
  withdrawalTxId?: string;
49
50
  brokerCustomerId?: string;
51
+ conversionRateToUSD?: number;
50
52
  }
51
53
  interface OrderModel extends Model<OrderDoc> {
52
54
  build(attrs: OrderAttrs): OrderDoc;
@@ -96,6 +96,9 @@ const buildOrder = (mongoose) => {
96
96
  brokerCustomerId: {
97
97
  type: String,
98
98
  },
99
+ conversionRateToUSD: {
100
+ type: Number,
101
+ },
99
102
  }, {
100
103
  toJSON: {
101
104
  transform(doc, ret) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@riocrypto/common-server",
3
- "version": "1.0.694",
3
+ "version": "1.0.697",
4
4
  "description": "",
5
5
  "main": "./build/index.js",
6
6
  "types": "./build/index.d.ts",
@@ -24,7 +24,7 @@
24
24
  "@aws-sdk/client-s3": "^3.297.0",
25
25
  "@everapi/currencyapi-js": "^1.0.6",
26
26
  "@google-cloud/storage": "^6.9.5",
27
- "@riocrypto/common": "^1.0.626",
27
+ "@riocrypto/common": "^1.0.628",
28
28
  "@types/express": "^4.17.13",
29
29
  "axios": "^0.27.2",
30
30
  "ccxt": "^3.0.30",