lesgo 1.0.0 → 2.1.0

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 (315) hide show
  1. package/README.md +5 -4
  2. package/bin/lesgo-scripts.sh +4 -4
  3. package/dist/config/app.d.ts +7 -0
  4. package/dist/config/app.js +9 -0
  5. package/dist/config/aws.d.ts +5 -0
  6. package/dist/config/aws.js +4 -0
  7. package/dist/config/basicAuth.d.ts +7 -0
  8. package/dist/config/basicAuth.js +8 -0
  9. package/dist/config/crypto.d.ts +10 -0
  10. package/dist/config/crypto.js +9 -0
  11. package/dist/config/dynamodb.d.ts +8 -0
  12. package/dist/config/dynamodb.js +14 -0
  13. package/dist/config/elasticache.d.ts +7 -0
  14. package/dist/config/elasticache.js +6 -0
  15. package/dist/config/index.d.ts +11 -0
  16. package/dist/config/index.js +11 -0
  17. package/dist/config/jwt.d.ts +12 -0
  18. package/dist/config/jwt.js +16 -0
  19. package/dist/config/rds.d.ts +12 -0
  20. package/dist/config/rds.js +13 -0
  21. package/dist/config/s3.d.ts +5 -0
  22. package/dist/config/s3.js +5 -0
  23. package/dist/config/secretsManager.d.ts +4 -0
  24. package/dist/config/secretsManager.js +4 -0
  25. package/dist/config/sqs.d.ts +9 -0
  26. package/dist/config/sqs.js +18 -0
  27. package/dist/exceptions/LesgoException.d.ts +6 -0
  28. package/{src → dist}/exceptions/LesgoException.js +5 -4
  29. package/dist/exceptions/index.d.ts +1 -0
  30. package/dist/exceptions/index.js +1 -0
  31. package/dist/middlewares/disconnectMiddleware.d.ts +8 -0
  32. package/dist/middlewares/disconnectMiddleware.js +78 -0
  33. package/dist/middlewares/httpMiddleware.d.ts +12 -0
  34. package/dist/middlewares/httpMiddleware.js +74 -0
  35. package/dist/middlewares/httpResponseMiddleware.d.ts +7 -0
  36. package/dist/middlewares/httpResponseMiddleware.js +128 -0
  37. package/dist/middlewares/index.d.ts +7 -0
  38. package/dist/middlewares/index.js +7 -0
  39. package/dist/middlewares/invokeCommandMiddleware.d.ts +12 -0
  40. package/dist/middlewares/invokeCommandMiddleware.js +70 -0
  41. package/dist/middlewares/sqsMiddleware.d.ts +10 -0
  42. package/dist/middlewares/sqsMiddleware.js +70 -0
  43. package/dist/middlewares/verifyBasicAuthMiddleware.d.ts +8 -0
  44. package/dist/middlewares/verifyBasicAuthMiddleware.js +59 -0
  45. package/dist/middlewares/verifyJwtMiddleware.d.ts +6 -0
  46. package/dist/middlewares/verifyJwtMiddleware.js +37 -0
  47. package/dist/services/DynamoDbService/deleteRecord.d.ts +8 -0
  48. package/dist/services/DynamoDbService/deleteRecord.js +69 -0
  49. package/dist/services/DynamoDbService/getClient.d.ts +7 -0
  50. package/dist/services/DynamoDbService/getClient.js +30 -0
  51. package/dist/services/DynamoDbService/getTableName.d.ts +2 -0
  52. package/dist/services/DynamoDbService/getTableName.js +15 -0
  53. package/dist/services/DynamoDbService/index.d.ts +6 -0
  54. package/dist/services/DynamoDbService/index.js +6 -0
  55. package/dist/services/DynamoDbService/putRecord.d.ts +8 -0
  56. package/dist/services/DynamoDbService/putRecord.js +64 -0
  57. package/dist/services/DynamoDbService/query.d.ts +7 -0
  58. package/dist/services/DynamoDbService/query.js +78 -0
  59. package/dist/services/DynamoDbService/scan.d.ts +7 -0
  60. package/dist/services/DynamoDbService/scan.js +60 -0
  61. package/dist/services/DynamoDbService/updateRecord.d.ts +9 -0
  62. package/dist/services/DynamoDbService/updateRecord.js +89 -0
  63. package/dist/services/ElastiCacheRedisService/deleteRedisCache.d.ts +3 -0
  64. package/dist/services/ElastiCacheRedisService/deleteRedisCache.js +62 -0
  65. package/dist/services/ElastiCacheRedisService/disconnectElastiCacheRedisClient.d.ts +11 -0
  66. package/dist/services/ElastiCacheRedisService/disconnectElastiCacheRedisClient.js +69 -0
  67. package/dist/services/ElastiCacheRedisService/getElastiCacheRedisClient.d.ts +12 -0
  68. package/dist/services/ElastiCacheRedisService/getElastiCacheRedisClient.js +114 -0
  69. package/dist/services/ElastiCacheRedisService/getRedisCache.d.ts +3 -0
  70. package/dist/services/ElastiCacheRedisService/getRedisCache.js +70 -0
  71. package/dist/services/ElastiCacheRedisService/index.d.ts +5 -0
  72. package/dist/services/ElastiCacheRedisService/index.js +5 -0
  73. package/dist/services/ElastiCacheRedisService/setRedisCache.d.ts +6 -0
  74. package/dist/services/ElastiCacheRedisService/setRedisCache.js +77 -0
  75. package/dist/services/JWTService/decodeJwt.d.ts +7 -0
  76. package/dist/services/JWTService/decodeJwt.js +9 -0
  77. package/dist/services/JWTService/getJwtSecret.d.ts +13 -0
  78. package/dist/services/JWTService/getJwtSecret.js +54 -0
  79. package/dist/services/JWTService/index.d.ts +2 -0
  80. package/dist/services/JWTService/index.js +2 -0
  81. package/dist/services/JWTService/sign.d.ts +3 -0
  82. package/dist/services/JWTService/sign.js +31 -0
  83. package/dist/services/JWTService/verify.d.ts +7 -0
  84. package/dist/services/JWTService/verify.js +61 -0
  85. package/dist/services/LoggerService.d.ts +46 -0
  86. package/{src → dist}/services/LoggerService.js +29 -60
  87. package/dist/services/RDSAuroraMySQLProxyService/disconnectMySQLProxyClient.d.ts +2 -0
  88. package/dist/services/RDSAuroraMySQLProxyService/disconnectMySQLProxyClient.js +60 -0
  89. package/dist/services/RDSAuroraMySQLProxyService/getMySQLProxyClient.d.ts +8 -0
  90. package/dist/services/RDSAuroraMySQLProxyService/getMySQLProxyClient.js +87 -0
  91. package/dist/services/RDSAuroraMySQLProxyService/index.d.ts +3 -0
  92. package/dist/services/RDSAuroraMySQLProxyService/index.js +3 -0
  93. package/dist/services/RDSAuroraMySQLProxyService/query.d.ts +4 -0
  94. package/dist/services/RDSAuroraMySQLProxyService/query.js +63 -0
  95. package/dist/services/S3Service/getClient.d.ts +4 -0
  96. package/dist/services/S3Service/getClient.js +28 -0
  97. package/dist/services/S3Service/getDownloadSignedUrl.d.ts +7 -0
  98. package/dist/services/S3Service/getDownloadSignedUrl.js +58 -0
  99. package/dist/services/S3Service/getHeadObject.d.ts +13 -0
  100. package/dist/services/S3Service/getHeadObject.js +83 -0
  101. package/dist/services/S3Service/getObject.d.ts +10 -0
  102. package/dist/services/S3Service/getObject.js +89 -0
  103. package/dist/services/S3Service/getUploadSignedUrl.d.ts +7 -0
  104. package/dist/services/S3Service/getUploadSignedUrl.js +61 -0
  105. package/dist/services/S3Service/index.d.ts +6 -0
  106. package/dist/services/S3Service/index.js +6 -0
  107. package/dist/services/S3Service/putObject.d.ts +9 -0
  108. package/dist/services/S3Service/putObject.js +77 -0
  109. package/dist/services/SQSService/deleteMessage.d.ts +9 -0
  110. package/dist/services/SQSService/deleteMessage.js +69 -0
  111. package/dist/services/SQSService/dispatch.d.ts +9 -0
  112. package/dist/services/SQSService/dispatch.js +71 -0
  113. package/dist/services/SQSService/getClient.d.ts +4 -0
  114. package/dist/services/SQSService/getClient.js +28 -0
  115. package/dist/services/SQSService/getQueueUrl.d.ts +7 -0
  116. package/dist/services/SQSService/getQueueUrl.js +25 -0
  117. package/dist/services/SQSService/index.d.ts +4 -0
  118. package/dist/services/SQSService/index.js +4 -0
  119. package/dist/services/SQSService/receiveMessages.d.ts +8 -0
  120. package/dist/services/SQSService/receiveMessages.js +65 -0
  121. package/dist/services/SecretsManagerService/getClient.d.ts +7 -0
  122. package/dist/services/SecretsManagerService/getClient.js +28 -0
  123. package/dist/services/SecretsManagerService/getSecretValue.d.ts +7 -0
  124. package/dist/services/SecretsManagerService/getSecretValue.js +65 -0
  125. package/dist/services/SecretsManagerService/index.d.ts +2 -0
  126. package/dist/services/SecretsManagerService/index.js +2 -0
  127. package/dist/services/index.d.ts +1 -0
  128. package/dist/services/index.js +1 -0
  129. package/dist/types/aws.d.ts +8 -0
  130. package/dist/types/aws.js +1 -0
  131. package/dist/utils/cache/redis/deleteCache.d.ts +19 -0
  132. package/dist/utils/cache/redis/deleteCache.js +21 -0
  133. package/dist/utils/cache/redis/getCache.d.ts +22 -0
  134. package/dist/utils/cache/redis/getCache.js +24 -0
  135. package/dist/utils/cache/redis/getClient.d.ts +30 -0
  136. package/dist/utils/cache/redis/getClient.js +32 -0
  137. package/dist/utils/cache/redis/index.d.ts +4 -0
  138. package/dist/utils/cache/redis/index.js +4 -0
  139. package/dist/utils/cache/redis/setCache.d.ts +25 -0
  140. package/dist/utils/cache/redis/setCache.js +26 -0
  141. package/dist/utils/crypto/decrypt.d.ts +33 -0
  142. package/dist/utils/crypto/decrypt.js +59 -0
  143. package/dist/utils/crypto/encrypt.d.ts +31 -0
  144. package/dist/utils/crypto/encrypt.js +41 -0
  145. package/dist/utils/crypto/hash.d.ts +31 -0
  146. package/dist/utils/crypto/hash.js +56 -0
  147. package/dist/utils/crypto/index.d.ts +3 -0
  148. package/dist/utils/crypto/index.js +3 -0
  149. package/dist/utils/crypto/validateEncryptionFields.d.ts +19 -0
  150. package/dist/utils/crypto/validateEncryptionFields.js +71 -0
  151. package/dist/utils/db/mysql/proxy/disconnect.d.ts +2 -0
  152. package/dist/utils/db/mysql/proxy/disconnect.js +5 -0
  153. package/dist/utils/db/mysql/proxy/disconnectDb.d.ts +2 -0
  154. package/dist/utils/db/mysql/proxy/disconnectDb.js +5 -0
  155. package/dist/utils/db/mysql/proxy/getClient.d.ts +4 -0
  156. package/dist/utils/db/mysql/proxy/getClient.js +5 -0
  157. package/dist/utils/db/mysql/proxy/index.d.ts +3 -0
  158. package/dist/utils/db/mysql/proxy/index.js +3 -0
  159. package/dist/utils/db/mysql/proxy/query.d.ts +4 -0
  160. package/dist/utils/db/mysql/proxy/query.js +45 -0
  161. package/dist/utils/dynamodb/deleteRecord.d.ts +5 -0
  162. package/dist/utils/dynamodb/deleteRecord.js +39 -0
  163. package/dist/utils/dynamodb/getClient.d.ts +3 -0
  164. package/dist/utils/dynamodb/getClient.js +5 -0
  165. package/dist/utils/dynamodb/index.d.ts +6 -0
  166. package/dist/utils/dynamodb/index.js +6 -0
  167. package/dist/utils/dynamodb/putRecord.d.ts +4 -0
  168. package/dist/utils/dynamodb/putRecord.js +39 -0
  169. package/dist/utils/dynamodb/query.d.ts +5 -0
  170. package/dist/utils/dynamodb/query.js +52 -0
  171. package/dist/utils/dynamodb/scan.d.ts +4 -0
  172. package/dist/utils/dynamodb/scan.js +40 -0
  173. package/dist/utils/dynamodb/updateRecord.d.ts +5 -0
  174. package/dist/utils/dynamodb/updateRecord.js +53 -0
  175. package/dist/utils/formatUnixTimestamp.d.ts +8 -0
  176. package/dist/utils/formatUnixTimestamp.js +17 -0
  177. package/dist/utils/generateUid.d.ts +13 -0
  178. package/{src → dist}/utils/generateUid.js +9 -4
  179. package/dist/utils/getCurrentDatetime.d.ts +2 -0
  180. package/dist/utils/getCurrentDatetime.js +4 -0
  181. package/dist/utils/getCurrentTimestamp.d.ts +7 -0
  182. package/dist/utils/getCurrentTimestamp.js +9 -0
  183. package/dist/utils/getJwtSubFromAuthHeader.d.ts +9 -0
  184. package/dist/utils/getJwtSubFromAuthHeader.js +24 -0
  185. package/dist/utils/index.d.ts +9 -0
  186. package/dist/utils/index.js +9 -0
  187. package/dist/utils/isDecimal.d.ts +8 -0
  188. package/dist/utils/isDecimal.js +9 -0
  189. package/dist/utils/isEmail.d.ts +9 -0
  190. package/{src → dist}/utils/isEmail.js +9 -4
  191. package/dist/utils/isEmpty.d.ts +8 -0
  192. package/dist/utils/isEmpty.js +19 -0
  193. package/dist/utils/jwt/index.d.ts +2 -0
  194. package/dist/utils/jwt/index.js +2 -0
  195. package/dist/utils/jwt/sign.d.ts +3 -0
  196. package/dist/utils/jwt/sign.js +5 -0
  197. package/dist/utils/jwt/verify.d.ts +3 -0
  198. package/dist/utils/jwt/verify.js +12 -0
  199. package/dist/utils/logger.d.ts +20 -0
  200. package/dist/utils/logger.js +38 -0
  201. package/dist/utils/s3/getClient.d.ts +3 -0
  202. package/dist/utils/s3/getClient.js +5 -0
  203. package/dist/utils/s3/getDownloadSignedUrl.d.ts +5 -0
  204. package/dist/utils/s3/getDownloadSignedUrl.js +39 -0
  205. package/dist/utils/s3/getHeadObject.d.ts +10 -0
  206. package/dist/utils/s3/getHeadObject.js +39 -0
  207. package/dist/utils/s3/getObject.d.ts +13 -0
  208. package/dist/utils/s3/getObject.js +51 -0
  209. package/dist/utils/s3/getUploadSignedUrl.d.ts +5 -0
  210. package/dist/utils/s3/getUploadSignedUrl.js +39 -0
  211. package/dist/utils/s3/index.d.ts +6 -0
  212. package/dist/utils/s3/index.js +6 -0
  213. package/dist/utils/s3/putObject.d.ts +5 -0
  214. package/dist/utils/s3/putObject.js +39 -0
  215. package/dist/utils/secretsmanager/getClient.d.ts +3 -0
  216. package/dist/utils/secretsmanager/getClient.js +5 -0
  217. package/dist/utils/secretsmanager/getSecretValue.d.ts +4 -0
  218. package/dist/utils/secretsmanager/getSecretValue.js +68 -0
  219. package/dist/utils/secretsmanager/index.d.ts +2 -0
  220. package/dist/utils/secretsmanager/index.js +2 -0
  221. package/dist/utils/sqs/deleteMessage.d.ts +5 -0
  222. package/dist/utils/sqs/deleteMessage.js +39 -0
  223. package/dist/utils/sqs/dispatch.d.ts +5 -0
  224. package/dist/utils/sqs/dispatch.js +39 -0
  225. package/dist/utils/sqs/getClient.d.ts +3 -0
  226. package/dist/utils/sqs/getClient.js +5 -0
  227. package/dist/utils/sqs/index.d.ts +4 -0
  228. package/dist/utils/sqs/index.js +4 -0
  229. package/dist/utils/sqs/receiveMessages.d.ts +5 -0
  230. package/dist/utils/sqs/receiveMessages.js +39 -0
  231. package/dist/utils/validateFields.d.ts +22 -0
  232. package/{src → dist}/utils/validateFields.js +13 -19
  233. package/package.json +145 -34
  234. package/src/exceptions/__tests__/LesgoException.spec.js +0 -24
  235. package/src/exceptions/index.js +0 -4
  236. package/src/index.js +0 -4
  237. package/src/middlewares/__mocks__/ValidationErrorException.js +0 -18
  238. package/src/middlewares/__tests__/basicAuthMiddleware.spec.js +0 -264
  239. package/src/middlewares/__tests__/clientAuthMiddleware.spec.js +0 -235
  240. package/src/middlewares/__tests__/errorHttpResponseMiddleware.spec.js +0 -203
  241. package/src/middlewares/__tests__/gzipHttpResponse.spec.js +0 -185
  242. package/src/middlewares/__tests__/httpNoOutputMiddleware.spec.js +0 -201
  243. package/src/middlewares/__tests__/normalizeHttpRequestMiddleware.spec.js +0 -181
  244. package/src/middlewares/__tests__/normalizeSQSMessageMiddleware.spec.js +0 -120
  245. package/src/middlewares/__tests__/successHttpResponseMiddleware.spec.js +0 -172
  246. package/src/middlewares/__tests__/verifyJwtMiddleware.spec.js +0 -297
  247. package/src/middlewares/basicAuthMiddleware.js +0 -125
  248. package/src/middlewares/clientAuthMiddleware.js +0 -103
  249. package/src/middlewares/errorHttpResponseMiddleware.js +0 -101
  250. package/src/middlewares/gzipHttpResponse.js +0 -98
  251. package/src/middlewares/httpMiddleware.js +0 -19
  252. package/src/middlewares/httpNoOutputMiddleware.js +0 -91
  253. package/src/middlewares/index.js +0 -19
  254. package/src/middlewares/normalizeHttpRequestMiddleware.js +0 -101
  255. package/src/middlewares/normalizeSQSMessageMiddleware.js +0 -67
  256. package/src/middlewares/successHttpResponseMiddleware.js +0 -85
  257. package/src/middlewares/verifyJwtMiddleware.js +0 -73
  258. package/src/services/AuroraDbRDSProxyService.js +0 -182
  259. package/src/services/AuroraDbService.js +0 -111
  260. package/src/services/DynamoDbService.js +0 -177
  261. package/src/services/ElastiCacheService.js +0 -17
  262. package/src/services/ElasticsearchService.js +0 -181
  263. package/src/services/FirebaseAdminService.js +0 -108
  264. package/src/services/JwtService.js +0 -52
  265. package/src/services/S3Service.js +0 -59
  266. package/src/services/SQSService.js +0 -65
  267. package/src/services/__tests__/AuroraDbRDSProxyService.spec.js +0 -278
  268. package/src/services/__tests__/AuroraDbService.spec.js +0 -211
  269. package/src/services/__tests__/AwsElasticsearchConnection.spec.js +0 -89
  270. package/src/services/__tests__/DynamoDbService.spec.js +0 -314
  271. package/src/services/__tests__/ElasticsearchService.spec.js +0 -201
  272. package/src/services/__tests__/FirebaseAdminService.spec.js +0 -356
  273. package/src/services/__tests__/JwtService.spec.js +0 -35
  274. package/src/services/__tests__/LengthAwarePaginator.spec.js +0 -223
  275. package/src/services/__tests__/LoggerService.spec.js +0 -267
  276. package/src/services/__tests__/Paginator.spec.js +0 -383
  277. package/src/services/__tests__/S3Service.spec.js +0 -55
  278. package/src/services/__tests__/SQSService.spec.js +0 -47
  279. package/src/services/__tests__/SignedRequest.spec.js +0 -103
  280. package/src/services/aws/AwsElasticsearchConnection.js +0 -59
  281. package/src/services/aws/SignedRequest.js +0 -158
  282. package/src/services/index.js +0 -19
  283. package/src/services/pagination/LengthAwarePaginator.js +0 -49
  284. package/src/services/pagination/Paginator.js +0 -260
  285. package/src/utils/__mocks__/db.js +0 -109
  286. package/src/utils/__tests__/cache.spec.js +0 -131
  287. package/src/utils/__tests__/crypto.spec.js +0 -122
  288. package/src/utils/__tests__/db.spec.js +0 -70
  289. package/src/utils/__tests__/dynamodb.spec.js +0 -27
  290. package/src/utils/__tests__/elasticsearch.spec.js +0 -43
  291. package/src/utils/__tests__/generateUid.spec.js +0 -36
  292. package/src/utils/__tests__/getJwtSubFromAuthHeader.spec.js +0 -20
  293. package/src/utils/__tests__/isDecimal.spec.js +0 -12
  294. package/src/utils/__tests__/isEmail.spec.js +0 -28
  295. package/src/utils/__tests__/isEmpty.spec.js +0 -31
  296. package/src/utils/__tests__/logger.spec.js +0 -11
  297. package/src/utils/__tests__/objectStore.spec.js +0 -67
  298. package/src/utils/__tests__/prepSQLInsertParams.spec.js +0 -46
  299. package/src/utils/__tests__/prepSQLUpdateParams.spec.js +0 -36
  300. package/src/utils/__tests__/queue.spec.js +0 -54
  301. package/src/utils/__tests__/validateFields.spec.js +0 -374
  302. package/src/utils/cache.js +0 -215
  303. package/src/utils/crypto.js +0 -77
  304. package/src/utils/db.js +0 -17
  305. package/src/utils/dynamodb.js +0 -6
  306. package/src/utils/elasticsearch.js +0 -20
  307. package/src/utils/getJwtSubFromAuthHeader.js +0 -18
  308. package/src/utils/index.js +0 -26
  309. package/src/utils/isDecimal.js +0 -2
  310. package/src/utils/isEmpty.js +0 -6
  311. package/src/utils/logger.js +0 -25
  312. package/src/utils/objectStore.js +0 -11
  313. package/src/utils/prepSQLInsertParams.js +0 -21
  314. package/src/utils/prepSQLUpdateParams.js +0 -25
  315. package/src/utils/queue.js +0 -11
@@ -1,201 +0,0 @@
1
- import config from 'Config/elasticsearch'; // eslint-disable-line import/no-unresolved
2
- import ElasticsearchService from '../ElasticsearchService';
3
-
4
- // TODO we'll need to add more expected response
5
-
6
- describe('ServicesGroup: test ElasticsearchService', () => {
7
- it('test instantiate default ElasticsearchService connection', () => {
8
- const es = new ElasticsearchService(config.adapters.mocked);
9
- expect(es.getClient()).toMatchObject({
10
- mocked: {
11
- conn: undefined,
12
- },
13
- });
14
- });
15
-
16
- it('test search', () => {
17
- const es = new ElasticsearchService(config.adapters.aws);
18
- return expect(es.search({ someKey: 'someValue' })).resolves.toMatchObject({
19
- mocked: {
20
- param: {
21
- body: {
22
- someKey: 'someValue',
23
- },
24
- index: 'lesgo',
25
- type: '_doc',
26
- },
27
- },
28
- });
29
- });
30
-
31
- it('test msearch', () => {
32
- const es = new ElasticsearchService(config.adapters.aws);
33
- const params = [
34
- { index: config.adapters.aws.index },
35
- {
36
- query: {
37
- bool: {
38
- must: { id: 123 },
39
- must_not: { is_deleted: 1 },
40
- },
41
- },
42
- },
43
- ];
44
-
45
- return expect(es.msearch(params)).resolves.toMatchObject({
46
- mocked: {
47
- params: {
48
- body: [
49
- { index: config.adapters.aws.index },
50
- {
51
- query: {
52
- bool: {
53
- must: { id: 123 },
54
- must_not: { is_deleted: 1 },
55
- },
56
- },
57
- },
58
- ],
59
- },
60
- },
61
- });
62
- });
63
-
64
- it('test get', () => {
65
- const es = new ElasticsearchService(config.adapters.aws);
66
- return expect(es.get(1)).resolves.toMatchObject({
67
- mocked: {
68
- params: {
69
- id: 1,
70
- },
71
- },
72
- });
73
- });
74
-
75
- it('test create', () => {
76
- const es = new ElasticsearchService(config.adapters.aws);
77
- return expect(
78
- es.create(1, { someKey: 'someValue' })
79
- ).resolves.toMatchObject({
80
- mocked: {
81
- params: {
82
- id: 1,
83
- body: {
84
- someKey: 'someValue',
85
- },
86
- },
87
- },
88
- });
89
- });
90
-
91
- it('test indexOrCreateById', () => {
92
- const es = new ElasticsearchService(config.adapters.aws);
93
- return expect(
94
- es.indexOrCreateById({ id: 1, someKey: 'someValue' })
95
- ).resolves.toMatchObject({
96
- mocked: {
97
- params: {
98
- id: 1,
99
- body: {
100
- someKey: 'someValue',
101
- },
102
- },
103
- },
104
- });
105
- });
106
-
107
- it('test updateById', () => {
108
- const es = new ElasticsearchService(config.adapters.aws);
109
- return expect(es.updateById(1)).resolves.toMatchObject({
110
- mocked: {
111
- params: {
112
- id: 1,
113
- },
114
- },
115
- });
116
- });
117
-
118
- it('test bulkIndex', () => {
119
- const es = new ElasticsearchService(config.adapters.aws);
120
- const bodies = [
121
- {
122
- profile_id: 1,
123
- someKey1: 'someValue1',
124
- },
125
- {
126
- profile_id: 2,
127
- someKey2: 'someValue2',
128
- },
129
- ];
130
-
131
- return expect(es.bulkIndex(bodies)).resolves.toMatchObject({
132
- mocked: {
133
- bodies: {
134
- body: [
135
- {
136
- index: {
137
- _id: 1,
138
- },
139
- },
140
- {
141
- profile_id: 1,
142
- someKey1: 'someValue1',
143
- },
144
- {
145
- index: {
146
- _id: 2,
147
- },
148
- },
149
- {
150
- profile_id: 2,
151
- someKey2: 'someValue2',
152
- },
153
- ],
154
- },
155
- },
156
- });
157
- });
158
-
159
- it('test deleteIndices', () => {
160
- const es = new ElasticsearchService(config.adapters.aws);
161
- return expect(
162
- es.deleteIndices(config.adapters.aws.index)
163
- ).resolves.toMatchObject({
164
- mocked: {
165
- params: {
166
- index: config.adapters.aws.index,
167
- },
168
- },
169
- });
170
- });
171
-
172
- it('test existIndeces', () => {
173
- const es = new ElasticsearchService(config.adapters.aws);
174
- return expect(
175
- es.existIndices(config.adapters.aws.index)
176
- ).resolves.toMatchObject({
177
- mocked: {
178
- params: {
179
- index: config.adapters.aws.index,
180
- },
181
- },
182
- });
183
- });
184
-
185
- it('test putMapping', () => {
186
- const es = new ElasticsearchService(config.adapters.aws);
187
- return expect(
188
- es.putMapping(config.adapters.aws.index, 'mockType', 'mockBody')
189
- ).resolves.toMatchObject({
190
- mocked: {
191
- params: {
192
- index: config.adapters.aws.index,
193
- type: 'mockType',
194
- body: {
195
- properties: 'mockBody',
196
- },
197
- },
198
- },
199
- });
200
- });
201
- });
@@ -1,356 +0,0 @@
1
- import * as firebaseAdmin from 'firebase-admin';
2
- import firebaseConfig from 'Config/firebase'; // eslint-disable-line import/no-unresolved
3
- import FirebaseAdminService from '../FirebaseAdminService';
4
- import LesgoException from '../../exceptions/LesgoException';
5
-
6
- describe('test FirebaseAdminService connect', () => {
7
- it('should not throw an error when instantiating FirebaseAdminService', () => {
8
- // eslint-disable-next-line no-unused-vars
9
- const fbAdmin = new FirebaseAdminService({
10
- serviceAccount: firebaseConfig.serviceAccount,
11
- projectName: firebaseConfig.projectName,
12
- });
13
-
14
- expect(firebaseAdmin.initializeApp).toHaveBeenCalledWith({
15
- credential: firebaseAdmin.credential.cert(firebaseConfig.serviceAccount),
16
- databaseURL: `https://${firebaseConfig.projectName}.firebaseio.com`,
17
- });
18
-
19
- expect(firebaseAdmin.credential.cert).toHaveBeenCalledWith(
20
- firebaseConfig.serviceAccount
21
- );
22
- });
23
-
24
- it('should have the new configuration when updating connection credentials', () => {
25
- const firebaseAdminConfig = {
26
- serviceAccount: JSON.stringify({ someCredKey: 'someCredValue' }),
27
- projectName: 'fakeProjectName',
28
- };
29
-
30
- const fbAdmin = new FirebaseAdminService(firebaseConfig);
31
- fbAdmin.connect(firebaseAdminConfig);
32
-
33
- expect(firebaseAdmin.initializeApp).toHaveBeenCalledWith({
34
- credential: firebaseAdmin.credential.cert(
35
- firebaseAdminConfig.serviceAccount
36
- ),
37
- databaseURL: `https://${firebaseAdminConfig.projectName}.firebaseio.com`,
38
- });
39
- });
40
-
41
- it('should throw an error when instantiating FirebaseAdminService without setting opts', () => {
42
- try {
43
- expect(new FirebaseAdminService()).toThrow();
44
- } catch (err) {
45
- expect(err).toMatchObject(
46
- new LesgoException(
47
- 'Missing required parameters serviceAccount and or projectName',
48
- 'FIREBASEADMIN_MISSING_PARAMETERS',
49
- 500
50
- )
51
- );
52
- }
53
- });
54
-
55
- it('should throw an error when instantiating FirebaseAdminService with missing serviceAccount', () => {
56
- try {
57
- expect(
58
- new FirebaseAdminService({
59
- projectName: firebaseConfig.projectName,
60
- })
61
- ).toThrow();
62
- } catch (err) {
63
- expect(err).toMatchObject(
64
- new LesgoException(
65
- 'Missing required parameters serviceAccount and or projectName',
66
- 'FIREBASEADMIN_MISSING_PARAMETERS',
67
- 500
68
- )
69
- );
70
- }
71
- });
72
-
73
- it('should throw an error when instantiating FirebaseAdminService with missing projectName', () => {
74
- try {
75
- expect(
76
- new FirebaseAdminService({
77
- serviceAccount: JSON.stringify({ someCredKey: 'someCredValue' }),
78
- })
79
- ).toThrow();
80
- } catch (err) {
81
- expect(err).toMatchObject(
82
- new LesgoException(
83
- 'Missing required parameters serviceAccount and or projectName',
84
- 'FIREBASEADMIN_MISSING_PARAMETERS',
85
- 500
86
- )
87
- );
88
- }
89
- });
90
- });
91
-
92
- describe('test FirebaseAdminService getAllUsers', () => {
93
- it('should return list of users with default', async () => {
94
- const fbAdmin = new FirebaseAdminService({
95
- serviceAccount: firebaseConfig.serviceAccount,
96
- projectName: firebaseConfig.projectName,
97
- });
98
-
99
- const firebaseUsers = await fbAdmin.getAllUsers();
100
-
101
- expect(firebaseUsers).toMatchObject([
102
- {
103
- uid: 'some-uid-001',
104
- email: 'some+email001@mail.com',
105
- emailVerified: false,
106
- displayName: 'SomeUser001',
107
- },
108
- {
109
- uid: 'some-uid-002',
110
- email: 'some+email002@mail.com',
111
- emailVerified: false,
112
- displayName: 'SomeUser002',
113
- },
114
- {
115
- uid: 'some-uid-003',
116
- email: 'some+email003@mail.com',
117
- emailVerified: false,
118
- displayName: 'SomeUser003',
119
- },
120
- ]);
121
- });
122
-
123
- it('should return list of users with maxResults', async () => {
124
- const fbAdmin = new FirebaseAdminService({
125
- serviceAccount: firebaseConfig.serviceAccount,
126
- projectName: firebaseConfig.projectName,
127
- });
128
-
129
- const firebaseUsers = await fbAdmin.getAllUsers(25);
130
-
131
- expect(firebaseUsers).toMatchObject([
132
- {
133
- uid: 'some-uid-001',
134
- email: 'some+email001@mail.com',
135
- emailVerified: false,
136
- displayName: 'SomeUser001',
137
- },
138
- {
139
- uid: 'some-uid-002',
140
- email: 'some+email002@mail.com',
141
- emailVerified: false,
142
- displayName: 'SomeUser002',
143
- },
144
- {
145
- uid: 'some-uid-003',
146
- email: 'some+email003@mail.com',
147
- emailVerified: false,
148
- displayName: 'SomeUser003',
149
- },
150
- ]);
151
- });
152
-
153
- it('should return list of users when calling calling the function with valid nextPageToken', async () => {
154
- const fbAdmin = new FirebaseAdminService({
155
- serviceAccount: firebaseConfig.serviceAccount,
156
- projectName: firebaseConfig.projectName,
157
- });
158
-
159
- const firebaseUsers = await fbAdmin.getAllUsers(
160
- 25,
161
- 'SAMPLE_NEXTPAGE_TOKEN'
162
- );
163
-
164
- expect(firebaseUsers).toMatchObject([
165
- {
166
- uid: 'some-uid-001',
167
- email: 'some+email001@mail.com',
168
- emailVerified: false,
169
- displayName: 'SomeUser001',
170
- },
171
- {
172
- uid: 'some-uid-002',
173
- email: 'some+email002@mail.com',
174
- emailVerified: false,
175
- displayName: 'SomeUser002',
176
- },
177
- {
178
- uid: 'some-uid-003',
179
- email: 'some+email003@mail.com',
180
- emailVerified: false,
181
- displayName: 'SomeUser003',
182
- },
183
- ]);
184
- });
185
-
186
- it('should throw an exception with invalid maxResults', async () => {
187
- const fbAdmin = new FirebaseAdminService({
188
- serviceAccount: firebaseConfig.serviceAccount,
189
- projectName: firebaseConfig.projectName,
190
- });
191
-
192
- try {
193
- await fbAdmin.getAllUsers('asd');
194
- } catch (err) {
195
- expect(err).toMatchObject(
196
- new LesgoException(
197
- 'Failed to fetch all users from firebase',
198
- 'FIREBASE_FETCH_USERS',
199
- 500,
200
- {
201
- err: {
202
- code: 'auth/argument-error',
203
- message:
204
- 'Required "maxResults" must be a positive integer that does not exceed 1000.',
205
- },
206
- }
207
- )
208
- );
209
- }
210
- });
211
-
212
- it('should throw an exception with invalid nextPageToken', async () => {
213
- const fbAdmin = new FirebaseAdminService({
214
- serviceAccount: firebaseConfig.serviceAccount,
215
- projectName: firebaseConfig.projectName,
216
- });
217
-
218
- try {
219
- await fbAdmin.getAllUsers(25, {
220
- token: 'invalidToken',
221
- });
222
- } catch (err) {
223
- expect(err).toMatchObject(
224
- new LesgoException(
225
- 'Failed to fetch all users from firebase',
226
- 'FIREBASE_FETCH_USERS',
227
- 500,
228
- {
229
- err: {
230
- code: 'auth/invalid-page-token',
231
- message: 'The page token must be a valid non-empty string.',
232
- },
233
- }
234
- )
235
- );
236
- }
237
- });
238
- });
239
-
240
- describe('test FirebaseAdminService createUser', () => {
241
- it('should return success response when calling the function', async () => {
242
- const fbAdmin = new FirebaseAdminService({
243
- serviceAccount: firebaseConfig.serviceAccount,
244
- projectName: firebaseConfig.projectName,
245
- });
246
-
247
- const firebaseUser = await fbAdmin.createUser({
248
- uid: 'some-uid',
249
- email: 'someemail@mail.com',
250
- password: 'somePassword',
251
- username: 'someUsername',
252
- });
253
-
254
- expect(firebaseUser).toMatchObject({
255
- uid: 'some-uid',
256
- email: 'someemail@mail.com',
257
- emailVerified: false,
258
- displayName: 'someUsername',
259
- });
260
- });
261
-
262
- it('should throw an exception with existing email', async () => {
263
- const fbAdmin = new FirebaseAdminService({
264
- serviceAccount: firebaseConfig.serviceAccount,
265
- projectName: firebaseConfig.projectName,
266
- });
267
-
268
- try {
269
- await fbAdmin.createUser({
270
- uid: 'some-uid',
271
- email: 'existingEmail@mail.com',
272
- password: 'somePassword',
273
- username: 'someUsername',
274
- });
275
- } catch (err) {
276
- expect(err).toMatchObject(
277
- new LesgoException(
278
- 'Failed to create user on firebase',
279
- 'FIREBASE_CREATE_USER',
280
- 400,
281
- {
282
- err: {
283
- code: 'auth/email-already-exists',
284
- message:
285
- 'The email address is already in use by another account.',
286
- },
287
- }
288
- )
289
- );
290
- }
291
- });
292
- });
293
-
294
- describe('test FirebaseAdminService deleteUser', () => {
295
- it('should return success response when calling the function', async () => {
296
- const fbAdmin = new FirebaseAdminService({
297
- serviceAccount: firebaseConfig.serviceAccount,
298
- projectName: firebaseConfig.projectName,
299
- });
300
-
301
- const firebaseUser = await fbAdmin.deleteUser('some-uid');
302
- expect(firebaseUser).toMatchObject({ uid: 'some-uid' });
303
- });
304
-
305
- it('should throw an exception with non-existing uid', async () => {
306
- const fbAdmin = new FirebaseAdminService({
307
- serviceAccount: firebaseConfig.serviceAccount,
308
- projectName: firebaseConfig.projectName,
309
- });
310
-
311
- try {
312
- await fbAdmin.deleteUser('non-existing-uid');
313
- } catch (err) {
314
- expect(err.name).toBe('LesgoException');
315
- expect(err.message).toBe('Failed to delete user from firebase');
316
- expect(err.statusCode).toBe(400);
317
- expect(err.code).toBe('FIREBASE_DELETE_USER');
318
- expect(err.extra.err).toMatchObject(
319
- new Error(
320
- 'FAKE-The user does not exist.',
321
- 'FAKE-auth/user-does-not-exist'
322
- )
323
- );
324
- }
325
- });
326
- });
327
-
328
- describe('test FirebaseAdminService delete', () => {
329
- it('should return success response when calling the function', async () => {
330
- const fbAdmin = new FirebaseAdminService({
331
- serviceAccount: firebaseConfig.serviceAccount,
332
- projectName: firebaseConfig.projectName,
333
- });
334
-
335
- return expect(fbAdmin.delete()).resolves.toBeDefined();
336
- });
337
-
338
- it('should be able to catch thrown exception', async () => {
339
- const fbAdmin = new FirebaseAdminService({
340
- serviceAccount: firebaseConfig.serviceAccount,
341
- projectName: 'fakeError',
342
- });
343
-
344
- try {
345
- const resp = await fbAdmin.delete();
346
- expect(resp).toThrow();
347
- } catch (err) {
348
- expect(err).toMatchObject(
349
- new LesgoException(
350
- 'Failed to delete firebase app',
351
- 'FIREBASE_DELETE_APP'
352
- )
353
- );
354
- }
355
- });
356
- });
@@ -1,35 +0,0 @@
1
- import config from 'Config/jwt'; // eslint-disable-line import/no-unresolved
2
- import jwt from 'jsonwebtoken';
3
- import JwtService from '../JwtService';
4
- import { token } from '../../middlewares/verifyJwtMiddleware';
5
-
6
- describe('ServicesGroup: test JwtService instantiation', () => {
7
- it('test instantiate default JwtService', () => {
8
- const headers = {
9
- Authorization:
10
- 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyLCJpc3MiOiJkb21haW4uY29tIiwiZGVwYXJ0bWVudF9pZCI6MX0.pa2TBRqdVSFUhmiglB8SD8ImthqhqZBn0stAdNRcJ3w',
11
- };
12
-
13
- const service = new JwtService(token(headers), config);
14
-
15
- expect(service).toMatchObject({
16
- decoded: {
17
- sub: '1234567890',
18
- name: 'John Doe',
19
- iss: config.iss.data[0],
20
- },
21
- settings: {
22
- validate: {
23
- iss: config.iss.validate,
24
- customClaims: config.customClaims.validate,
25
- },
26
- config: {
27
- iss: config.iss.data,
28
- customClaims: config.customClaims.data,
29
- },
30
- },
31
- });
32
-
33
- expect(service.jwt()).toMatchObject(jwt);
34
- });
35
- });