lesgo 0.7.8 → 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 (318) hide show
  1. package/README.md +5 -4
  2. package/bin/lesgo-scripts.sh +52 -7
  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 +36 -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/CHANGELOG.md +0 -9
  235. package/src/exceptions/__tests__/LesgoException.spec.js +0 -24
  236. package/src/exceptions/index.js +0 -4
  237. package/src/index.js +0 -4
  238. package/src/middlewares/__mocks__/ValidationErrorException.js +0 -18
  239. package/src/middlewares/__tests__/basicAuthMiddleware.spec.js +0 -225
  240. package/src/middlewares/__tests__/clientAuthMiddleware.spec.js +0 -137
  241. package/src/middlewares/__tests__/errorHttpResponseMiddleware.spec.js +0 -190
  242. package/src/middlewares/__tests__/gzipHttpResponse.spec.js +0 -185
  243. package/src/middlewares/__tests__/httpNoOutputMiddleware.spec.js +0 -199
  244. package/src/middlewares/__tests__/normalizeHttpRequestMiddleware.spec.js +0 -181
  245. package/src/middlewares/__tests__/normalizeSQSMessageMiddleware.spec.js +0 -120
  246. package/src/middlewares/__tests__/serverAuthMiddleware.spec.js +0 -170
  247. package/src/middlewares/__tests__/successHttpResponseMiddleware.spec.js +0 -159
  248. package/src/middlewares/__tests__/verifyJwtMiddleware.spec.js +0 -222
  249. package/src/middlewares/basicAuthMiddleware.js +0 -145
  250. package/src/middlewares/clientAuthMiddleware.js +0 -82
  251. package/src/middlewares/errorHttpResponseMiddleware.js +0 -99
  252. package/src/middlewares/gzipHttpResponse.js +0 -98
  253. package/src/middlewares/httpMiddleware.js +0 -19
  254. package/src/middlewares/httpNoOutputMiddleware.js +0 -87
  255. package/src/middlewares/index.js +0 -15
  256. package/src/middlewares/normalizeHttpRequestMiddleware.js +0 -101
  257. package/src/middlewares/normalizeSQSMessageMiddleware.js +0 -67
  258. package/src/middlewares/serverAuthMiddleware.js +0 -29
  259. package/src/middlewares/successHttpResponseMiddleware.js +0 -83
  260. package/src/middlewares/verifyJwtMiddleware.js +0 -62
  261. package/src/services/AuroraDbRDSProxyService.js +0 -182
  262. package/src/services/AuroraDbService.js +0 -111
  263. package/src/services/DynamoDbService.js +0 -177
  264. package/src/services/ElastiCacheService.js +0 -17
  265. package/src/services/ElasticsearchService.js +0 -181
  266. package/src/services/FirebaseAdminService.js +0 -108
  267. package/src/services/JwtService.js +0 -52
  268. package/src/services/S3Service.js +0 -59
  269. package/src/services/SQSService.js +0 -65
  270. package/src/services/__tests__/AuroraDbRDSProxyService.spec.js +0 -278
  271. package/src/services/__tests__/AuroraDbService.spec.js +0 -211
  272. package/src/services/__tests__/AwsElasticsearchConnection.spec.js +0 -89
  273. package/src/services/__tests__/DynamoDbService.spec.js +0 -314
  274. package/src/services/__tests__/ElasticsearchService.spec.js +0 -201
  275. package/src/services/__tests__/FirebaseAdminService.spec.js +0 -356
  276. package/src/services/__tests__/JwtService.spec.js +0 -35
  277. package/src/services/__tests__/LengthAwarePaginator.spec.js +0 -223
  278. package/src/services/__tests__/LoggerService.spec.js +0 -252
  279. package/src/services/__tests__/Paginator.spec.js +0 -383
  280. package/src/services/__tests__/S3Service.spec.js +0 -55
  281. package/src/services/__tests__/SQSService.spec.js +0 -47
  282. package/src/services/__tests__/SignedRequest.spec.js +0 -103
  283. package/src/services/aws/AwsElasticsearchConnection.js +0 -59
  284. package/src/services/aws/SignedRequest.js +0 -158
  285. package/src/services/index.js +0 -19
  286. package/src/services/pagination/LengthAwarePaginator.js +0 -49
  287. package/src/services/pagination/Paginator.js +0 -260
  288. package/src/utils/__mocks__/db.js +0 -109
  289. package/src/utils/__tests__/cache.spec.js +0 -131
  290. package/src/utils/__tests__/crypto.spec.js +0 -122
  291. package/src/utils/__tests__/db.spec.js +0 -70
  292. package/src/utils/__tests__/dynamodb.spec.js +0 -27
  293. package/src/utils/__tests__/elasticsearch.spec.js +0 -43
  294. package/src/utils/__tests__/generateUid.spec.js +0 -36
  295. package/src/utils/__tests__/getJwtSubFromAuthHeader.spec.js +0 -20
  296. package/src/utils/__tests__/isDecimal.spec.js +0 -12
  297. package/src/utils/__tests__/isEmail.spec.js +0 -28
  298. package/src/utils/__tests__/isEmpty.spec.js +0 -31
  299. package/src/utils/__tests__/logger.spec.js +0 -11
  300. package/src/utils/__tests__/objectStore.spec.js +0 -67
  301. package/src/utils/__tests__/prepSQLInsertParams.spec.js +0 -46
  302. package/src/utils/__tests__/prepSQLUpdateParams.spec.js +0 -36
  303. package/src/utils/__tests__/queue.spec.js +0 -54
  304. package/src/utils/__tests__/validateFields.spec.js +0 -374
  305. package/src/utils/cache.js +0 -215
  306. package/src/utils/crypto.js +0 -77
  307. package/src/utils/db.js +0 -17
  308. package/src/utils/dynamodb.js +0 -6
  309. package/src/utils/elasticsearch.js +0 -20
  310. package/src/utils/getJwtSubFromAuthHeader.js +0 -18
  311. package/src/utils/index.js +0 -26
  312. package/src/utils/isDecimal.js +0 -2
  313. package/src/utils/isEmpty.js +0 -6
  314. package/src/utils/logger.js +0 -25
  315. package/src/utils/objectStore.js +0 -11
  316. package/src/utils/prepSQLInsertParams.js +0 -21
  317. package/src/utils/prepSQLUpdateParams.js +0 -25
  318. package/src/utils/queue.js +0 -11
@@ -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
- });
@@ -1,223 +0,0 @@
1
- import LengthAwarePaginator from '../pagination/LengthAwarePaginator';
2
- import {
3
- mockData,
4
- mockDataFirstItem,
5
- mockDataLastItem,
6
- } from '../../utils/__mocks__/db';
7
- import db from '../../utils/db';
8
-
9
- jest.mock('../../utils/db');
10
-
11
- beforeEach(() => {
12
- db.select.mockClear();
13
- });
14
-
15
- const FILE = 'Services/pagination/LengthAwarePaginator';
16
-
17
- describe('test LengthAwarePaginator instantiate', () => {
18
- it('should not throw exception when instantiating', async () => {
19
- const paginator = new LengthAwarePaginator(
20
- db,
21
- 'SELECT * FROM tests',
22
- {},
23
- {
24
- perPage: 5,
25
- total: 30,
26
- }
27
- );
28
-
29
- expect(await paginator.count()).toEqual(5);
30
- expect(paginator.currentPage()).toEqual(1);
31
- expect(await paginator.firstItem()).toMatchObject(mockDataFirstItem);
32
- expect(await paginator.lastItem()).toMatchObject(mockDataLastItem);
33
- expect(paginator.perPage()).toEqual(5);
34
- expect(await paginator.total()).toEqual(30);
35
-
36
- expect(db.select).toHaveBeenCalled();
37
- });
38
- it('should not throw exception when instantiating with current page', async () => {
39
- const paginator = new LengthAwarePaginator(
40
- db,
41
- 'SELECT * FROM tests',
42
- {},
43
- {
44
- perPage: 5,
45
- currentPage: 2,
46
- total: 30,
47
- }
48
- );
49
-
50
- expect(await paginator.count()).toEqual(5);
51
- expect(paginator.currentPage()).toEqual(2);
52
- expect(await paginator.firstItem()).toMatchObject(mockDataFirstItem);
53
- expect(await paginator.lastItem()).toMatchObject(mockDataLastItem);
54
- expect(paginator.perPage()).toEqual(5);
55
- expect(await paginator.total()).toEqual(30);
56
-
57
- expect(db.select).toHaveBeenCalled();
58
- });
59
- it('should default perPage to 10 when instantiating without perPage', async () => {
60
- const paginator = new LengthAwarePaginator(
61
- db,
62
- 'SELECT * FROM tests',
63
- {},
64
- {
65
- total: 30,
66
- }
67
- );
68
-
69
- expect(await paginator.count()).toEqual(10);
70
- expect(paginator.currentPage()).toEqual(1);
71
- expect(paginator.perPage()).toEqual(10);
72
- expect(await paginator.total()).toEqual(30);
73
-
74
- expect(db.select).toHaveBeenCalled();
75
- });
76
- it('should throw exception if total is not a number', async () => {
77
- try {
78
- expect(
79
- new LengthAwarePaginator(
80
- db,
81
- 'SELECT * FROM tests',
82
- {},
83
- {
84
- perPage: 5,
85
- currentPage: 1,
86
- total: 'test',
87
- }
88
- )
89
- ).toThrow();
90
- } catch (err) {
91
- expect(err.name).toEqual('LesgoException');
92
- expect(err.message).toEqual(
93
- "Invalid type for 'total', expecting 'number'"
94
- );
95
- expect(err.code).toEqual(`${FILE}::FIELD_VALIDATION_EXCEPTION`);
96
- expect(err.statusCode).toEqual(500);
97
- }
98
- });
99
- it('should return the object version of the paginator', async () => {
100
- const paginator = new LengthAwarePaginator(
101
- db,
102
- 'SELECT * FROM total_tests',
103
- {},
104
- {
105
- perPage: 5,
106
- total: 30,
107
- }
108
- );
109
- expect(await paginator.toObject()).toMatchObject({
110
- count: 5,
111
- previous_page: false,
112
- current_page: 1,
113
- next_page: 2,
114
- per_page: 5,
115
- last_page: 6,
116
- total: 30,
117
- items: [
118
- { ...mockDataFirstItem },
119
- { ...mockData },
120
- { ...mockData },
121
- { ...mockData },
122
- { ...mockDataLastItem },
123
- ],
124
- });
125
-
126
- expect(db.select).toHaveBeenCalled();
127
- });
128
-
129
- it('should simply return an empty paginator object if total is explicitly zero', async () => {
130
- const paginator = new LengthAwarePaginator(
131
- db,
132
- 'SELECT * FROM tests',
133
- {},
134
- {
135
- perPage: 5,
136
- currentPage: 1,
137
- total: 0,
138
- }
139
- );
140
-
141
- expect(await paginator.count()).toEqual(0);
142
- expect(await paginator.previousPage()).toEqual(false);
143
- expect(paginator.currentPage()).toEqual(1);
144
- expect(await paginator.nextPage()).toEqual(false);
145
- expect(await paginator.firstItem()).toBe(undefined);
146
- expect(await paginator.lastItem()).toBe(undefined);
147
- expect(paginator.perPage()).toEqual(5);
148
- expect(await paginator.total()).toEqual(0);
149
-
150
- expect(await paginator.toObject()).toMatchObject({
151
- count: 0,
152
- previous_page: false,
153
- current_page: 1,
154
- next_page: false,
155
- per_page: 5,
156
- last_page: 0,
157
- total: 0,
158
- items: [],
159
- });
160
-
161
- expect(db.select).not.toHaveBeenCalled();
162
- });
163
- });
164
-
165
- describe('test total() usage', () => {
166
- it('should get total number of data using supplied paramater', async () => {
167
- const paginator = new LengthAwarePaginator(
168
- db,
169
- 'SELECT * FROM total_tests',
170
- {},
171
- {
172
- perPage: 10,
173
- currentPage: 1,
174
- total: 30,
175
- }
176
- );
177
-
178
- expect(await paginator.total()).toEqual(30);
179
- expect(db.select).not.toHaveBeenCalled();
180
- });
181
- });
182
-
183
- describe('test lastPage() usage', () => {
184
- it('should get the last page using supplied parameter as total data', async () => {
185
- const paginator1 = new LengthAwarePaginator(
186
- db,
187
- 'SELECT * FROM total_tests',
188
- {},
189
- {
190
- perPage: 10,
191
- currentPage: 1,
192
- total: 30,
193
- }
194
- );
195
- expect(await paginator1.lastPage()).toEqual(3);
196
-
197
- const paginator2 = new LengthAwarePaginator(
198
- db,
199
- 'SELECT * FROM total_tests',
200
- {},
201
- {
202
- perPage: 5,
203
- currentPage: 1,
204
- total: 30,
205
- }
206
- );
207
- expect(await paginator2.lastPage()).toEqual(6);
208
-
209
- const paginator3 = new LengthAwarePaginator(
210
- db,
211
- 'SELECT * FROM total_tests',
212
- {},
213
- {
214
- perPage: 7,
215
- currentPage: 1,
216
- total: 30,
217
- }
218
- );
219
- expect(await paginator3.lastPage()).toEqual(5);
220
-
221
- expect(db.select).not.toHaveBeenCalled();
222
- });
223
- });