@riocrypto/common 1.0.504 → 1.0.507

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 (85) hide show
  1. package/build/index.d.ts +1 -40
  2. package/build/index.js +1 -40
  3. package/package.json +2 -2
  4. package/build/clients/bitstamp-client.d.ts +0 -16
  5. package/build/clients/bitstamp-client.js +0 -83
  6. package/build/clients/ccxt-client.d.ts +0 -48
  7. package/build/clients/ccxt-client.js +0 -201
  8. package/build/clients/etherscan-client.d.ts +0 -6
  9. package/build/clients/etherscan-client.js +0 -24
  10. package/build/clients/fireblocks-client.d.ts +0 -15
  11. package/build/clients/fireblocks-client.js +0 -140
  12. package/build/clients/fixer-client.d.ts +0 -8
  13. package/build/clients/fixer-client.js +0 -34
  14. package/build/clients/gueno-client.d.ts +0 -10
  15. package/build/clients/gueno-client.js +0 -44
  16. package/build/clients/kapstar-client.d.ts +0 -6
  17. package/build/clients/kapstar-client.js +0 -26
  18. package/build/clients/kushki-client.d.ts +0 -14
  19. package/build/clients/kushki-client.js +0 -150
  20. package/build/clients/slack-client.d.ts +0 -7
  21. package/build/clients/slack-client.js +0 -34
  22. package/build/helpers/get-user-helper.d.ts +0 -4
  23. package/build/helpers/get-user-helper.js +0 -35
  24. package/build/middlewares/authorize.d.ts +0 -28
  25. package/build/middlewares/authorize.js +0 -195
  26. package/build/middlewares/current-admin-auth.d.ts +0 -15
  27. package/build/middlewares/current-admin-auth.js +0 -20
  28. package/build/middlewares/current-auth.d.ts +0 -16
  29. package/build/middlewares/current-auth.js +0 -20
  30. package/build/middlewares/error-handler.d.ts +0 -2
  31. package/build/middlewares/error-handler.js +0 -14
  32. package/build/middlewares/get-order.d.ts +0 -11
  33. package/build/middlewares/get-order.js +0 -57
  34. package/build/middlewares/get-partner.d.ts +0 -10
  35. package/build/middlewares/get-partner.js +0 -41
  36. package/build/middlewares/get-user.d.ts +0 -12
  37. package/build/middlewares/get-user.js +0 -45
  38. package/build/middlewares/require-admin-api-key.d.ts +0 -2
  39. package/build/middlewares/require-admin-api-key.js +0 -11
  40. package/build/middlewares/require-auth.d.ts +0 -2
  41. package/build/middlewares/require-auth.js +0 -11
  42. package/build/middlewares/require-priveleges.d.ts +0 -2
  43. package/build/middlewares/require-priveleges.js +0 -15
  44. package/build/middlewares/validate-auth.d.ts +0 -2
  45. package/build/middlewares/validate-auth.js +0 -30
  46. package/build/middlewares/validate-kyc.d.ts +0 -2
  47. package/build/middlewares/validate-kyc.js +0 -30
  48. package/build/middlewares/validate-order.d.ts +0 -0
  49. package/build/middlewares/validate-order.js +0 -20
  50. package/build/middlewares/validate-request.d.ts +0 -2
  51. package/build/middlewares/validate-request.js +0 -13
  52. package/build/middlewares/verify-admin-api-key.d.ts +0 -9
  53. package/build/middlewares/verify-admin-api-key.js +0 -11
  54. package/build/models/admin-auth.d.ts +0 -16
  55. package/build/models/admin-auth.js +0 -59
  56. package/build/models/auth.d.ts +0 -24
  57. package/build/models/auth.js +0 -83
  58. package/build/models/bank-payout.d.ts +0 -20
  59. package/build/models/bank-payout.js +0 -44
  60. package/build/models/business-user.d.ts +0 -57
  61. package/build/models/business-user.js +0 -111
  62. package/build/models/ccxt-order.d.ts +0 -16
  63. package/build/models/ccxt-order.js +0 -37
  64. package/build/models/checked-address.d.ts +0 -17
  65. package/build/models/checked-address.js +0 -37
  66. package/build/models/kushki-payment.d.ts +0 -16
  67. package/build/models/kushki-payment.js +0 -37
  68. package/build/models/kyc.d.ts +0 -20
  69. package/build/models/kyc.js +0 -45
  70. package/build/models/order.d.ts +0 -67
  71. package/build/models/order.js +0 -123
  72. package/build/models/partner.d.ts +0 -35
  73. package/build/models/partner.js +0 -69
  74. package/build/models/rio-settings.d.ts +0 -12
  75. package/build/models/rio-settings.js +0 -29
  76. package/build/models/user.d.ts +0 -53
  77. package/build/models/user.js +0 -94
  78. package/build/services/apiKey.d.ts +0 -3
  79. package/build/services/apiKey.js +0 -24
  80. package/build/services/password.d.ts +0 -4
  81. package/build/services/password.js +0 -32
  82. package/build/services/s3.d.ts +0 -5
  83. package/build/services/s3.js +0 -21
  84. package/build/types.d.ts +0 -93
  85. package/build/types.js +0 -109
@@ -1,34 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.fixerClient = void 0;
16
- const axios_1 = __importDefault(require("axios"));
17
- class FixerClient {
18
- constructor(apiKey) {
19
- this.apiKey = apiKey;
20
- }
21
- convert(from, to) {
22
- return __awaiter(this, void 0, void 0, function* () {
23
- const fixerResponse = yield axios_1.default.get(`https://api.apilayer.com/fixer/latest?base=${from}&symbols=${to}`, {
24
- headers: {
25
- apikey: this.apiKey,
26
- "Accept-Encoding": "gzip,deflate,compress",
27
- },
28
- });
29
- const exchangeRate = fixerResponse.data.rates[to];
30
- return exchangeRate;
31
- });
32
- }
33
- }
34
- exports.fixerClient = new FixerClient(process.env.FIXER_API_KEY);
@@ -1,10 +0,0 @@
1
- declare class GuenoClient {
2
- private email;
3
- private password;
4
- private env;
5
- constructor(email: string, password: string, env: "sandbox" | "production");
6
- getAddressRiskScore(address: string, protocol: Crypto): Promise<any>;
7
- getAccessToken(): Promise<any>;
8
- }
9
- export declare const guenoClient: GuenoClient;
10
- export {};
@@ -1,44 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.guenoClient = void 0;
16
- const axios_1 = __importDefault(require("axios"));
17
- class GuenoClient {
18
- constructor(email, password, env) {
19
- this.email = email;
20
- this.password = password;
21
- this.env = env;
22
- }
23
- getAddressRiskScore(address, protocol) {
24
- return __awaiter(this, void 0, void 0, function* () {
25
- const accessToken = yield this.getAccessToken();
26
- const { data } = yield axios_1.default.get(`https://api-gueno.${this.env === "production" ? "prd" : "stg"}.gueno.com/api/amlCrypto/addressRiskScore?address=${address}&protocol=${protocol}`, {
27
- headers: {
28
- Authorization: `Bearer ${accessToken}`,
29
- },
30
- });
31
- return data;
32
- });
33
- }
34
- getAccessToken() {
35
- return __awaiter(this, void 0, void 0, function* () {
36
- const { data } = yield axios_1.default.post(`https://api-gueno.${this.env === "production" ? "prd" : "stg"}.gueno.com/api/auth/login`, {
37
- email: this.email,
38
- password: this.password,
39
- });
40
- return data.access_token;
41
- });
42
- }
43
- }
44
- exports.guenoClient = new GuenoClient(process.env.GUENO_EMAIL, process.env.GUENO_PASSWORD, process.env.GUENO_ENV);
@@ -1,6 +0,0 @@
1
- declare class KapstarClient {
2
- constructor();
3
- getBRLExchangeRateUSD(): Promise<number>;
4
- }
5
- export declare const kapstarClient: KapstarClient;
6
- export {};
@@ -1,26 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.kapstarClient = void 0;
16
- const axios_1 = __importDefault(require("axios"));
17
- class KapstarClient {
18
- constructor() { }
19
- getBRLExchangeRateUSD() {
20
- return __awaiter(this, void 0, void 0, function* () {
21
- const kapstarResponse = yield axios_1.default.get(`https://api.ecsa.finance/quotation-service/v1/quotation/last`);
22
- return 1 / kapstarResponse.data;
23
- });
24
- }
25
- }
26
- exports.kapstarClient = new KapstarClient();
@@ -1,14 +0,0 @@
1
- import { BusinessUser } from "../types/business-user";
2
- import { Order } from "../types/order";
3
- import { User } from "../types/user";
4
- declare class KushkiClient {
5
- private privateMerchantId;
6
- private environment;
7
- private baseUrl;
8
- constructor(privateMerchantId: string, environment: "sandbox" | "production");
9
- createPaymentLink(order: Order, user: User, token: string): Promise<any>;
10
- createBankPaymentToken(order: Order, user: User | BusinessUser): Promise<any>;
11
- createBankPayment(order: Order, user: User | BusinessUser, token: string): Promise<any>;
12
- }
13
- export declare const kushkiClient: KushkiClient;
14
- export {};
@@ -1,150 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.kushkiClient = void 0;
16
- const axios_1 = __importDefault(require("axios"));
17
- const user_type_1 = require("../types/user-type");
18
- class KushkiClient {
19
- constructor(privateMerchantId, environment) {
20
- this.privateMerchantId = privateMerchantId;
21
- this.environment = environment;
22
- this.baseUrl = `https://api${this.environment === "production" ? "." : "-uat."}kushkipagos.com`;
23
- }
24
- createPaymentLink(order, user, token) {
25
- return __awaiter(this, void 0, void 0, function* () {
26
- const body = {
27
- token,
28
- amount: {
29
- currency: order.fiat,
30
- subtotalIva: 0,
31
- subtotalIva0: order.amountFiat,
32
- iva: 0,
33
- ice: 0,
34
- },
35
- contactDetails: {
36
- firstName: user.firstName,
37
- lastName: user.lastName,
38
- email: user.email,
39
- documentType: "CC",
40
- phoneNumber: user.phoneNumber,
41
- },
42
- orderDetails: {
43
- siteDomain: "riocrypto.com",
44
- shippingDetails: {
45
- name: `${user.firstName} ${user.lastName}`,
46
- phone: user.phoneNumber,
47
- address1: user.street1,
48
- address2: user.street2,
49
- city: user.city,
50
- region: user.state,
51
- country: user.country,
52
- zipcode: user.postalCode,
53
- },
54
- billingDetails: {
55
- name: `${user.firstName} ${user.lastName}`,
56
- phone: user.phoneNumber,
57
- address1: user.street1,
58
- address2: user.street2,
59
- city: user.city,
60
- region: user.state,
61
- country: user.country,
62
- zipcode: user.postalCode,
63
- },
64
- product: {
65
- id: order.id,
66
- title: order.crypto,
67
- price: order.amountFiat,
68
- sku: order.id,
69
- quantity: 1,
70
- },
71
- },
72
- };
73
- const response = yield (0, axios_1.default)({
74
- method: "post",
75
- url: `${this.baseUrl}/card/v1/charges`,
76
- headers: {
77
- "Content-Type": "application/json",
78
- "Private-Merchant-Id": this.privateMerchantId,
79
- "Accept-Encoding": "gzip,deflate,compress",
80
- },
81
- data: body,
82
- });
83
- const data = response.data;
84
- return data;
85
- });
86
- }
87
- createBankPaymentToken(order, user) {
88
- return __awaiter(this, void 0, void 0, function* () {
89
- const body = {
90
- amount: {
91
- subtotalIva: 0,
92
- subtotalIva0: order.amountFiat,
93
- iva: 0,
94
- },
95
- callbackUrl: "https://riocrypto.com",
96
- userType: user.type === user_type_1.UserType.Business ? 1 : 0,
97
- documentType: "CC",
98
- documentNumber: "123456789",
99
- paymentDescription: `Compra de ${order.crypto} en riocrypto.com`,
100
- email: user.email,
101
- currency: order.fiat,
102
- };
103
- const response = yield (0, axios_1.default)({
104
- method: "post",
105
- url: `${this.baseUrl}/transfer/v1/tokens`,
106
- headers: {
107
- "Content-Type": "application/json",
108
- "Private-Merchant-Id": this.privateMerchantId,
109
- "Accept-Encoding": "gzip,deflate,compress",
110
- },
111
- data: body,
112
- });
113
- const data = response.data;
114
- return data;
115
- });
116
- }
117
- createBankPayment(order, user, token) {
118
- return __awaiter(this, void 0, void 0, function* () {
119
- const body = {
120
- token,
121
- amount: {
122
- subtotalIva: 0,
123
- subtotalIva0: order.amountFiat,
124
- iva: 0,
125
- },
126
- contactDetails: {
127
- fullName: user.type === user_type_1.UserType.Business
128
- ? user.companyName
129
- : `${user.firstName} ${user.lastName}`,
130
- email: user.email,
131
- documentType: "CC",
132
- phoneNumber: user.phoneNumber,
133
- },
134
- };
135
- const response = yield (0, axios_1.default)({
136
- method: "post",
137
- url: `${this.baseUrl}/transfer/v1/init`,
138
- headers: {
139
- "Content-Type": "application/json",
140
- "Private-Merchant-Id": this.privateMerchantId,
141
- "Accept-Encoding": "gzip,deflate,compress",
142
- },
143
- data: body,
144
- });
145
- const data = response.data;
146
- return data;
147
- });
148
- }
149
- }
150
- exports.kushkiClient = new KushkiClient(process.env.KUSHKI_PRIVATE_MERCHANT_ID, process.env.KUSHKI_ENV);
@@ -1,7 +0,0 @@
1
- declare class SlackClient {
2
- private webhookUrl;
3
- constructor(webhookUrl: string);
4
- sendMessage(message: string): Promise<void>;
5
- }
6
- export declare const slackClient: SlackClient;
7
- export {};
@@ -1,34 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.slackClient = void 0;
16
- const axios_1 = __importDefault(require("axios"));
17
- class SlackClient {
18
- constructor(webhookUrl) {
19
- this.webhookUrl = webhookUrl;
20
- }
21
- sendMessage(message) {
22
- return __awaiter(this, void 0, void 0, function* () {
23
- try {
24
- yield axios_1.default.post(this.webhookUrl, {
25
- text: message,
26
- });
27
- }
28
- catch (error) {
29
- console.log(error);
30
- }
31
- });
32
- }
33
- }
34
- exports.slackClient = new SlackClient(process.env.SLACK_WEBHOOK_URL);
@@ -1,4 +0,0 @@
1
- import { Mongoose } from "mongoose";
2
- import { User as UserType } from "../types/user";
3
- import { BusinessUser as BusinessUserType } from "../types/business-user";
4
- export declare const getUserHelper: (id: string, mongoose: Mongoose) => Promise<UserType | BusinessUserType | null>;
@@ -1,35 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.getUserHelper = void 0;
13
- const business_user_1 = require("../models/business-user");
14
- const user_1 = require("../models/user");
15
- const getUserHelper = (id, mongoose) => __awaiter(void 0, void 0, void 0, function* () {
16
- let individualUser;
17
- let businessUser;
18
- const User = (0, user_1.buildUser)(mongoose);
19
- const BusinessUser = (0, business_user_1.buildBusinessUser)(mongoose);
20
- try {
21
- individualUser = yield User.findById(id);
22
- }
23
- catch (error) {
24
- individualUser = null;
25
- }
26
- try {
27
- businessUser = yield BusinessUser.findById(id);
28
- }
29
- catch (error) {
30
- businessUser = null;
31
- }
32
- const user = individualUser || businessUser;
33
- return user;
34
- });
35
- exports.getUserHelper = getUserHelper;
@@ -1,28 +0,0 @@
1
- import { Request, Response, NextFunction } from "express";
2
- import { BusinessUserDoc } from "../models/business-user";
3
- import { UserDoc } from "../models/user";
4
- import { Mongoose } from "mongoose";
5
- import { AuthorizationType } from "../types/authorization-type";
6
- import { PartnerDoc } from "../models/partner";
7
- interface AuthPayload {
8
- id: string;
9
- phoneNumber: string;
10
- missing: string[];
11
- }
12
- interface AdminAuthPayload {
13
- id: string;
14
- email: string;
15
- }
16
- declare global {
17
- namespace Express {
18
- interface Request {
19
- currentAuth?: AuthPayload;
20
- currentAdminAuth?: AdminAuthPayload;
21
- user?: UserDoc | BusinessUserDoc;
22
- partner?: PartnerDoc;
23
- session?: any;
24
- }
25
- }
26
- }
27
- export declare const authorize: (req: Request, res: Response, next: NextFunction, mongoose: Mongoose, authorizationTypes: AuthorizationType[]) => Promise<void>;
28
- export {};
@@ -1,195 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.authorize = void 0;
16
- const business_user_1 = require("../models/business-user");
17
- const user_1 = require("../models/user");
18
- const user_attribute_1 = require("../types/user-attribute");
19
- const authorization_type_1 = require("../types/authorization-type");
20
- const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
21
- const not_authorized_error_1 = require("../errors/not-authorized-error");
22
- const kyc_status_1 = require("../types/kyc-status");
23
- const missing_kyc_approval_error_1 = require("../errors/missing-kyc-approval-error");
24
- const missing_user_error_1 = require("../errors/missing-user-error");
25
- const missing_password_error_1 = require("../errors/missing-password-error");
26
- const missing_security_question_error_1 = require("../errors/missing-security-question-error");
27
- const admin_only_error_1 = require("../errors/admin-only-error");
28
- const not_broker_error_1 = require("../errors/not-broker-error");
29
- const partner_1 = require("../models/partner");
30
- const authorize = (req, res, next, mongoose, authorizationTypes) => __awaiter(void 0, void 0, void 0, function* () {
31
- var _a, _b, _c, _d, _e, _f, _g, _h;
32
- let missingKYC = false;
33
- if (authorizationTypes.includes(authorization_type_1.AuthorizationType.Auth) ||
34
- authorizationTypes.includes(authorization_type_1.AuthorizationType.UserNoKYC) ||
35
- authorizationTypes.includes(authorization_type_1.AuthorizationType.User) ||
36
- authorizationTypes.includes(authorization_type_1.AuthorizationType.Broker) ||
37
- authorizationTypes.includes(authorization_type_1.AuthorizationType.Partner)) {
38
- if ((_a = req.cookies) === null || _a === void 0 ? void 0 : _a.jwt) {
39
- try {
40
- const payload = jsonwebtoken_1.default.verify(req.cookies.jwt, process.env.JWT_KEY);
41
- req.currentAuth = payload;
42
- }
43
- catch (err) { }
44
- }
45
- if ((_c = (_b = req.currentAuth) === null || _b === void 0 ? void 0 : _b.missing) === null || _c === void 0 ? void 0 : _c.includes("password")) {
46
- throw new missing_password_error_1.MissingPasswordError();
47
- }
48
- if ((_e = (_d = req.currentAuth) === null || _d === void 0 ? void 0 : _d.missing) === null || _e === void 0 ? void 0 : _e.includes("securityQuestion")) {
49
- throw new missing_security_question_error_1.MissingSecurityQuestionError();
50
- }
51
- }
52
- if (authorizationTypes.includes(authorization_type_1.AuthorizationType.Admin)) {
53
- if ((_f = req.cookies) === null || _f === void 0 ? void 0 : _f.adminJwt) {
54
- try {
55
- const payload = jsonwebtoken_1.default.verify(req.cookies.adminJwt, process.env.JWT_KEY_ADMIN);
56
- req.currentAdminAuth = payload;
57
- }
58
- catch (err) { }
59
- }
60
- }
61
- if (authorizationTypes.includes(authorization_type_1.AuthorizationType.Partner) &&
62
- req.currentAuth) {
63
- const Partner = yield (0, partner_1.buildPartner)(mongoose);
64
- const partner = yield Partner.findOne({
65
- authId: req.currentAuth.id,
66
- });
67
- if (partner) {
68
- req.partner = partner;
69
- }
70
- }
71
- if (authorizationTypes.includes(authorization_type_1.AuthorizationType.UserNoKYC)) {
72
- let individualUser;
73
- let businessUser;
74
- try {
75
- const User = yield (0, user_1.buildUser)(mongoose);
76
- individualUser = yield User.findOne({
77
- authId: req.currentAuth.id,
78
- attributes: { $ne: user_attribute_1.UserAttribute.deleted },
79
- });
80
- }
81
- catch (err) {
82
- individualUser = null;
83
- }
84
- try {
85
- const BusinessUser = yield (0, business_user_1.buildBusinessUser)(mongoose);
86
- businessUser = yield BusinessUser.findOne({
87
- authId: req.currentAuth.id,
88
- attributes: { $ne: user_attribute_1.UserAttribute.deleted },
89
- });
90
- }
91
- catch (err) {
92
- businessUser = null;
93
- }
94
- const user = individualUser || businessUser;
95
- if (user) {
96
- req.user = user;
97
- }
98
- }
99
- if (authorizationTypes.includes(authorization_type_1.AuthorizationType.User)) {
100
- let individualUser;
101
- let businessUser;
102
- try {
103
- const User = yield (0, user_1.buildUser)(mongoose);
104
- individualUser = yield User.findOne({
105
- authId: req.currentAuth.id,
106
- attributes: { $ne: user_attribute_1.UserAttribute.deleted },
107
- });
108
- if (!individualUser) {
109
- throw new Error();
110
- }
111
- if ((individualUser === null || individualUser === void 0 ? void 0 : individualUser.kycStatus) !== kyc_status_1.KYCStatus.Passed) {
112
- missingKYC = true;
113
- throw new Error();
114
- }
115
- }
116
- catch (err) {
117
- individualUser = null;
118
- }
119
- try {
120
- const BusinessUser = yield (0, business_user_1.buildBusinessUser)(mongoose);
121
- businessUser = yield BusinessUser.findOne({
122
- authId: req.currentAuth.id,
123
- });
124
- if (!businessUser) {
125
- throw new Error();
126
- }
127
- if ((businessUser === null || businessUser === void 0 ? void 0 : businessUser.kycStatus) !== kyc_status_1.KYCStatus.businessApproved) {
128
- missingKYC = true;
129
- throw new Error();
130
- }
131
- }
132
- catch (err) {
133
- businessUser = null;
134
- }
135
- const user = individualUser || businessUser;
136
- if (user) {
137
- req.user = user;
138
- }
139
- }
140
- if (authorizationTypes.includes(authorization_type_1.AuthorizationType.Broker)) {
141
- let brokerBusinessUser;
142
- try {
143
- const BusinessUser = yield (0, business_user_1.buildBusinessUser)(mongoose);
144
- brokerBusinessUser = yield BusinessUser.findOne({
145
- authId: req.currentAuth.id,
146
- attributes: { $e: user_attribute_1.UserAttribute.broker },
147
- });
148
- if (!brokerBusinessUser) {
149
- throw new Error();
150
- }
151
- if ((brokerBusinessUser === null || brokerBusinessUser === void 0 ? void 0 : brokerBusinessUser.kycStatus) !== kyc_status_1.KYCStatus.businessApproved) {
152
- missingKYC = true;
153
- throw new Error();
154
- }
155
- }
156
- catch (err) {
157
- brokerBusinessUser = null;
158
- }
159
- const user = brokerBusinessUser;
160
- if (user) {
161
- req.user = user;
162
- }
163
- }
164
- if (
165
- // if no auth
166
- (!req.currentAdminAuth && !req.currentAuth && !req.user && !req.partner) ||
167
- (!req.currentAuth &&
168
- !authorizationTypes.includes(authorization_type_1.AuthorizationType.Auth) &&
169
- !req.user)) {
170
- if (req.currentAdminAuth &&
171
- authorizationTypes.includes(authorization_type_1.AuthorizationType.Admin)) {
172
- next();
173
- return;
174
- }
175
- if (missingKYC) {
176
- throw new missing_kyc_approval_error_1.MissingKYCApprovalError();
177
- }
178
- if ((authorizationTypes.includes(authorization_type_1.AuthorizationType.User) ||
179
- authorizationTypes.includes(authorization_type_1.AuthorizationType.UserNoKYC)) &&
180
- ((_g = req.cookies) === null || _g === void 0 ? void 0 : _g.jwt)) {
181
- throw new missing_user_error_1.MissingUserError();
182
- }
183
- if (authorizationTypes.includes(authorization_type_1.AuthorizationType.Admin) &&
184
- authorizationTypes.length === 1 &&
185
- ((_h = req.cookies) === null || _h === void 0 ? void 0 : _h.jwt)) {
186
- throw new admin_only_error_1.AdminOnlyError();
187
- }
188
- if (!req.user && authorizationTypes.includes(authorization_type_1.AuthorizationType.Broker)) {
189
- throw new not_broker_error_1.NotBrokerError();
190
- }
191
- throw new not_authorized_error_1.NotAuthorizedError();
192
- }
193
- next();
194
- });
195
- exports.authorize = authorize;
@@ -1,15 +0,0 @@
1
- import { Request, Response, NextFunction } from "express";
2
- interface AuthPayload {
3
- id: string;
4
- email: string;
5
- }
6
- declare global {
7
- namespace Express {
8
- interface Request {
9
- currentAdminAuth?: AuthPayload;
10
- session?: any;
11
- }
12
- }
13
- }
14
- export declare const currentAdminAuth: (req: Request, res: Response, next: NextFunction) => void;
15
- export {};
@@ -1,20 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.currentAdminAuth = void 0;
7
- const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
8
- const currentAdminAuth = (req, res, next) => {
9
- var _a;
10
- if (!((_a = req.cookies) === null || _a === void 0 ? void 0 : _a.adminJwt)) {
11
- return next();
12
- }
13
- try {
14
- const payload = jsonwebtoken_1.default.verify(req.cookies.adminJwt, process.env.JWT_KEY_ADMIN);
15
- req.currentAdminAuth = payload;
16
- }
17
- catch (err) { }
18
- next();
19
- };
20
- exports.currentAdminAuth = currentAdminAuth;
@@ -1,16 +0,0 @@
1
- import { Request, Response, NextFunction } from "express";
2
- interface AuthPayload {
3
- id: string;
4
- phoneNumber: string;
5
- missing: string[];
6
- }
7
- declare global {
8
- namespace Express {
9
- interface Request {
10
- currentAuth?: AuthPayload;
11
- session?: any;
12
- }
13
- }
14
- }
15
- export declare const currentAuth: (req: Request, res: Response, next: NextFunction) => void;
16
- export {};