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,278 +0,0 @@
1
- import mysql from 'mysql2/promise';
2
- import AuroraDbRDSProxyService from '../AuroraDbRDSProxyService';
3
- import LesgoException from '../../exceptions/LesgoException';
4
-
5
- const auroraConfig = {
6
- host: 'some-fake-host',
7
- user: 'fakeUsername',
8
- password: 'fakePassword',
9
- database: 'fakeDbName',
10
- };
11
-
12
- const customConfig = {
13
- host: 'some-fake-host-2',
14
- user: 'fakeUsername2',
15
- password: 'fakePassword2',
16
- database: 'fakeDbName2',
17
- };
18
-
19
- describe('test AuroraDbRDSProxyService instantiate', () => {
20
- it('should not throw exception when instantiating', () => {
21
- const db = new AuroraDbRDSProxyService(auroraConfig);
22
- expect(db.clientOpts).toMatchObject(auroraConfig);
23
- });
24
-
25
- it('should allow for empty config', () => {
26
- const db = new AuroraDbRDSProxyService();
27
- expect(db.clientOpts).toMatchObject({});
28
- });
29
- });
30
-
31
- describe('test AuroraDbRDSProxyService connect', () => {
32
- it('should be able to connect without custom config', async () => {
33
- const db = new AuroraDbRDSProxyService(auroraConfig);
34
- const conn = await db.connect();
35
-
36
- expect(conn.mocked).toMatchObject(auroraConfig);
37
- });
38
-
39
- it('should be able to connect with custom config', async () => {
40
- const db = new AuroraDbRDSProxyService(auroraConfig);
41
- const conn = await db.connect(customConfig);
42
-
43
- expect(conn.mocked).toMatchObject(customConfig);
44
- });
45
- });
46
-
47
- describe('test AuroraDbRDSProxyService query', () => {
48
- it('should return results object when calling query function', async () => {
49
- const db = new AuroraDbRDSProxyService(auroraConfig);
50
- const resp = await db.query('SELECT_QUERY', {});
51
-
52
- expect(resp).toMatchObject({
53
- results: [
54
- {
55
- id: 1,
56
- uid: 'some-uid-1',
57
- },
58
- {
59
- id: 2,
60
- uid: 'some-uid-2',
61
- },
62
- ],
63
- });
64
-
65
- expect(mysql.createConnection).toHaveBeenCalled();
66
- });
67
-
68
- it('should return results object when calling querying with connection options passed', async () => {
69
- const db = new AuroraDbRDSProxyService(auroraConfig);
70
- const resp = await db.query('SELECT_QUERY', {}, auroraConfig);
71
-
72
- expect(resp).toMatchObject({
73
- results: [
74
- {
75
- id: 1,
76
- uid: 'some-uid-1',
77
- },
78
- {
79
- id: 2,
80
- uid: 'some-uid-2',
81
- },
82
- ],
83
- });
84
-
85
- expect(mysql.createConnection).toHaveBeenCalled();
86
- });
87
-
88
- it('should return results object when calling querying with no connection options passed and persistent conn', async () => {
89
- const db = new AuroraDbRDSProxyService(auroraConfig);
90
- await db.pConnect();
91
- const resp = await db.query('SELECT_QUERY', {});
92
-
93
- expect(resp).toMatchObject({
94
- results: [
95
- {
96
- id: 1,
97
- uid: 'some-uid-1',
98
- },
99
- {
100
- id: 2,
101
- uid: 'some-uid-2',
102
- },
103
- ],
104
- });
105
-
106
- expect(mysql.createConnection).toHaveBeenCalled();
107
- });
108
- });
109
-
110
- describe('test AuroraDbRDSProxyService select', () => {
111
- it('should return array results when calling select function', async () => {
112
- const db = new AuroraDbRDSProxyService(auroraConfig);
113
- return expect(db.select('SELECT_QUERY', {})).resolves.toMatchObject([
114
- {
115
- id: 1,
116
- uid: 'some-uid-1',
117
- },
118
- {
119
- id: 2,
120
- uid: 'some-uid-2',
121
- },
122
- ]);
123
- });
124
-
125
- it('should throw an exception when writing with invalid query', async () => {
126
- const error = new LesgoException(
127
- 'Exception caught executing SQL Statement',
128
- 'AURORADBSERVICE_QUERY_EXCEPTION',
129
- 500,
130
- {
131
- err: {
132
- code: 'BadRequestException',
133
- },
134
- }
135
- );
136
-
137
- const db = new AuroraDbRDSProxyService(auroraConfig);
138
- return expect(db.select('INVALID_QUERY', {})).rejects.toMatchObject(error);
139
- });
140
-
141
- it('should throw an exception when calling select with invalid query parameters', async () => {
142
- const error = new LesgoException(
143
- 'Exception caught executing SQL Statement',
144
- 'AURORADBSERVICE_QUERY_EXCEPTION',
145
- 500,
146
- {
147
- err: {
148
- code: 'BadRequestException',
149
- },
150
- }
151
- );
152
-
153
- const db = new AuroraDbRDSProxyService(auroraConfig);
154
- return expect(
155
- db.select('RANDOM_QUERY', 'INVALID_QUERY_PARAMETERS')
156
- ).rejects.toMatchObject(error);
157
- });
158
- });
159
-
160
- describe('test AuroraDbRDSProxyService selectPaginate', () => {
161
- it('should return paginated results when calling selectPaginate function', async () => {
162
- const db = new AuroraDbRDSProxyService(auroraConfig);
163
- return expect(db.selectPaginate('SELECT_QUERY', {})).resolves.toMatchObject(
164
- {
165
- count: 2,
166
- previous_page: false,
167
- current_page: 1,
168
- next_page: false,
169
- per_page: 10,
170
- items: [
171
- {
172
- id: 1,
173
- uid: 'some-uid-1',
174
- },
175
- {
176
- id: 2,
177
- uid: 'some-uid-2',
178
- },
179
- ],
180
- }
181
- );
182
- });
183
-
184
- it('should return paginated results when calling selectPaginate with defined total', async () => {
185
- const db = new AuroraDbRDSProxyService(auroraConfig);
186
- return expect(
187
- db.selectPaginate('SELECT_QUERY', {}, 1, 2, 1)
188
- ).resolves.toMatchObject({
189
- count: 1,
190
- previous_page: 1,
191
- current_page: 2,
192
- next_page: 3,
193
- per_page: 1,
194
- items: [
195
- {
196
- id: 1,
197
- uid: 'some-uid-1',
198
- },
199
- ],
200
- });
201
- });
202
- });
203
-
204
- describe('test AuroraDbRDSProxyService selectFirst', () => {
205
- it('should only return the first record when calling selectFirst', async () => {
206
- const db = new AuroraDbRDSProxyService(auroraConfig);
207
- return expect(db.selectFirst('SELECT_QUERY', {})).resolves.toMatchObject({
208
- id: 1,
209
- uid: 'some-uid-1',
210
- });
211
- });
212
- });
213
-
214
- describe('test AuroraDbRDSProxyService insert', () => {
215
- it('should return recordId when inserting record', async () => {
216
- const db = new AuroraDbRDSProxyService(auroraConfig);
217
- return expect(db.insert('INSERT_QUERY', {})).resolves.toEqual(20);
218
- });
219
-
220
- it('should throw exception when calling insert with invalid query', async () => {
221
- const error = new LesgoException(
222
- 'No records inserted from INSERT query',
223
- 'AURORADBSERVICE_NO_RECORDS_INSERTED',
224
- 400
225
- );
226
-
227
- const db = new AuroraDbRDSProxyService(auroraConfig);
228
- return expect(db.insert('INVALID_INSERT_QUERY', {})).rejects.toMatchObject(
229
- error
230
- );
231
- });
232
- });
233
-
234
- describe('test AuroraDbRDSProxyService update', () => {
235
- it('should return success when making update query', async () => {
236
- const db = new AuroraDbRDSProxyService(auroraConfig);
237
- return expect(db.update('UPDATE_QUERY', {})).resolves.not.toThrow();
238
- });
239
-
240
- it('should throw not exception when caliing update with invalid query', async () => {
241
- const db = new AuroraDbRDSProxyService(auroraConfig);
242
- return expect(db.update('INVALID_UPDATE_QUERY', {})).resolves.not.toThrow();
243
- });
244
- });
245
-
246
- describe('test AuroraDbRDSProxyService pConnect', () => {
247
- it('should be able to connect without custom config', async () => {
248
- const db = new AuroraDbRDSProxyService(auroraConfig);
249
- await db.pConnect();
250
-
251
- expect(db.conn.mocked).toMatchObject(auroraConfig);
252
- });
253
-
254
- it('should be able to connect with custom config', async () => {
255
- const db = new AuroraDbRDSProxyService(auroraConfig);
256
- await db.pConnect(customConfig);
257
-
258
- expect(db.conn.mocked).toMatchObject(customConfig);
259
- });
260
- });
261
-
262
- describe('test AuroraDbRDSProxyService end', () => {
263
- it('should end the connection when passed', async () => {
264
- const db = new AuroraDbRDSProxyService(auroraConfig);
265
- const conn = await db.connect();
266
- await db.end(conn);
267
-
268
- expect(conn.end).toHaveBeenCalledTimes(1);
269
- });
270
-
271
- it('should end the persisted connection when none is passed', async () => {
272
- const db = new AuroraDbRDSProxyService(auroraConfig);
273
- await db.pConnect();
274
- await db.end();
275
-
276
- expect(db.conn.end).toHaveBeenCalledTimes(1);
277
- });
278
- });
@@ -1,211 +0,0 @@
1
- import dataApiClient from 'data-api-client';
2
- import dbConfig from 'Config/db'; // eslint-disable-line import/no-unresolved
3
- import AuroraDbService from '../AuroraDbService';
4
- import LesgoException from '../../exceptions/LesgoException';
5
-
6
- const auroraConfig = {
7
- secretArn: 'fakeSecretArn',
8
- resourceArn: 'fakeResourceArn',
9
- database: 'fakeDbName',
10
- };
11
-
12
- describe('test AuroraDbService instantiate', () => {
13
- it('should not throw exception when instantiating', () => {
14
- const db = new AuroraDbService();
15
-
16
- expect(dataApiClient).toHaveBeenCalledWith({});
17
- expect(db.client.mocked).toMatchObject({});
18
- });
19
-
20
- it('should not throw exception with custom config', () => {
21
- const db = new AuroraDbService(auroraConfig);
22
-
23
- expect(dataApiClient).toHaveBeenCalledWith(auroraConfig);
24
- expect(db.client.mocked).toMatchObject(auroraConfig);
25
- });
26
-
27
- it('should not throw exception with custom region', () => {
28
- const db = new AuroraDbService({
29
- ...auroraConfig,
30
- region: 'ap-southeast-1',
31
- });
32
-
33
- expect(dataApiClient).toHaveBeenCalledWith(auroraConfig);
34
- expect(db.client.mocked).toMatchObject(auroraConfig);
35
- });
36
- });
37
-
38
- describe('test AuroraDbService connect', () => {
39
- it('should have updated credentials when calling connect', () => {
40
- const db = new AuroraDbService(auroraConfig);
41
- db.connect({
42
- secretArn: dbConfig.secretCommandArn,
43
- });
44
-
45
- expect(db.client.mocked).toMatchObject({
46
- secretArn: dbConfig.secretCommandArn,
47
- });
48
- });
49
- });
50
-
51
- describe('test AuroraDbService query', () => {
52
- it('should return records object when calling query function', async () => {
53
- const db = new AuroraDbService(auroraConfig);
54
- return expect(db.query('SELECT_QUERY', {})).resolves.toMatchObject({
55
- records: [
56
- {
57
- id: 1,
58
- uid: 'some-uid-1',
59
- },
60
- {
61
- id: 2,
62
- uid: 'some-uid-2',
63
- },
64
- ],
65
- });
66
- });
67
- });
68
-
69
- describe('test AuroraDbService select', () => {
70
- it('should return array records when calling select function', async () => {
71
- const db = new AuroraDbService(auroraConfig);
72
- return expect(db.select('SELECT_QUERY', {})).resolves.toMatchObject([
73
- {
74
- id: 1,
75
- uid: 'some-uid-1',
76
- },
77
- {
78
- id: 2,
79
- uid: 'some-uid-2',
80
- },
81
- ]);
82
- });
83
-
84
- it('should throw an exception when writing with invalid query', async () => {
85
- const error = new LesgoException(
86
- 'Exception caught executing SQL Statement',
87
- 'AURORADBSERVICE_QUERY_EXCEPTION',
88
- 500,
89
- {
90
- err: {
91
- code: 'BadRequestException',
92
- },
93
- }
94
- );
95
-
96
- const db = new AuroraDbService(auroraConfig);
97
- return expect(db.select('INVALID_QUERY', {})).rejects.toMatchObject(error);
98
- });
99
-
100
- it('should throw an exception when calling select with invalid query parameters', async () => {
101
- const error = new LesgoException(
102
- 'Exception caught executing SQL Statement',
103
- 'AURORADBSERVICE_QUERY_EXCEPTION',
104
- 500,
105
- {
106
- err: {
107
- code: 'BadRequestException',
108
- },
109
- }
110
- );
111
-
112
- const db = new AuroraDbService(auroraConfig);
113
- return expect(
114
- db.select('RANDOM_QUERY', 'INVALID_QUERY_PARAMETERS')
115
- ).rejects.toMatchObject(error);
116
- });
117
- });
118
-
119
- describe('test AuroraDbService selectPaginate', () => {
120
- it('should return paginated records when calling selectPaginate function', async () => {
121
- const db = new AuroraDbService(auroraConfig);
122
- return expect(db.selectPaginate('SELECT_QUERY', {})).resolves.toMatchObject(
123
- {
124
- count: 2,
125
- previous_page: false,
126
- current_page: 1,
127
- next_page: false,
128
- per_page: 10,
129
- items: [
130
- {
131
- id: 1,
132
- uid: 'some-uid-1',
133
- },
134
- {
135
- id: 2,
136
- uid: 'some-uid-2',
137
- },
138
- ],
139
- }
140
- );
141
- });
142
-
143
- it('should return paginated records when calling selectPaginate with defined total', async () => {
144
- const db = new AuroraDbService(auroraConfig);
145
- return expect(
146
- db.selectPaginate('SELECT_QUERY', {}, 1, 2, 1)
147
- ).resolves.toMatchObject({
148
- count: 1,
149
- previous_page: 1,
150
- current_page: 2,
151
- next_page: 3,
152
- per_page: 1,
153
- items: [
154
- {
155
- id: 1,
156
- uid: 'some-uid-1',
157
- },
158
- ],
159
- });
160
- });
161
- });
162
-
163
- describe('test AuroraDbService selectFirst', () => {
164
- it('should only return the first record when calling selectFirst', async () => {
165
- const db = new AuroraDbService(auroraConfig);
166
- return expect(db.selectFirst('SELECT_QUERY', {})).resolves.toMatchObject({
167
- id: 1,
168
- uid: 'some-uid-1',
169
- });
170
- });
171
- });
172
-
173
- describe('test AuroraDbService insert', () => {
174
- it('should return recordId when inserting record', async () => {
175
- const db = new AuroraDbService(auroraConfig);
176
- return expect(db.insert('INSERT_QUERY', {})).resolves.toEqual(20);
177
- });
178
-
179
- it('should throw exception when calling insert with invalid query', async () => {
180
- const error = new LesgoException(
181
- 'No records inserted from INSERT query',
182
- 'AURORADBSERVICE_NO_RECORDS_INSERTED',
183
- 400
184
- );
185
-
186
- const db = new AuroraDbService(auroraConfig);
187
- return expect(db.insert('INVALID_INSERT_QUERY', {})).rejects.toMatchObject(
188
- error
189
- );
190
- });
191
- });
192
-
193
- describe('test AuroraDbService update', () => {
194
- it('should return success when making update query', async () => {
195
- const db = new AuroraDbService(auroraConfig);
196
- return db.update('UPDATE_QUERY', {});
197
- });
198
-
199
- it('should throw exception when caliing update with invalid query', async () => {
200
- const error = new LesgoException(
201
- 'No records updated from UPDATE query',
202
- 'AURORADBSERVICE_NO_RECORDS_UPDATED',
203
- 400
204
- );
205
-
206
- const db = new AuroraDbService(auroraConfig);
207
- return expect(db.update('INVALID_UPDATE_QUERY', {})).rejects.toMatchObject(
208
- error
209
- );
210
- });
211
- });
@@ -1,89 +0,0 @@
1
- import AWS from 'aws-sdk';
2
- import { URL } from 'url';
3
- import AwsElasticsearchConnection from '../aws/AwsElasticsearchConnection';
4
-
5
- const commonConn = new AwsElasticsearchConnection();
6
-
7
- describe('ServicesGroup: test AwsElasticsearchConnection Credentails', () => {
8
- it('test getCredentials AwsElasticsearchConnection', async () => {
9
- await expect(commonConn.getCredentials()).resolves.toMatchObject({
10
- mocked: {
11
- credentials: 'mockedCredentials',
12
- },
13
- });
14
- });
15
-
16
- it('test getCredentails and throws rejects promise', async () => {
17
- const oldConfig = AWS.config;
18
-
19
- AWS.config = {
20
- ...AWS.config,
21
- getCredentials: jest.fn().mockImplementation(callback => {
22
- return callback(
23
- {
24
- mocked: {
25
- error: 'mockedError',
26
- },
27
- },
28
- null
29
- );
30
- }),
31
- };
32
-
33
- await expect(commonConn.getCredentials()).rejects.toMatchObject({
34
- mocked: {
35
- error: 'mockedError',
36
- },
37
- });
38
-
39
- // return it back the old config
40
- AWS.config = oldConfig;
41
- });
42
-
43
- it('should throw error if credential is empty', async () => {
44
- const oldConfig = AWS.config.credentials;
45
- AWS.config.credentials = null;
46
-
47
- await expect(commonConn.getCredentials()).rejects.toThrow(
48
- new Error('Invalid AWS Credentials')
49
- );
50
-
51
- // return it back the old config
52
- AWS.config.credentials = oldConfig;
53
- });
54
- });
55
-
56
- describe('ServicesGroup: test AwsElasticsearchConnection Request', () => {
57
- it('should call the request method', async () => {
58
- const conn = new AwsElasticsearchConnection({
59
- awsRegion: 'us-east-1',
60
- url: new URL('http://localhost'),
61
- });
62
-
63
- await conn.request({ method: 'POST' }, () => {}); // using no body
64
- await conn.request({ method: 'POST', body: 'Yow' }, () => {}); // using string to body
65
- await conn.request({ method: 'POST', body: ['Yow'] }, () => {}); // using array to body
66
-
67
- await conn.request(
68
- {
69
- method: 'POST',
70
- body: ['Yow'],
71
- },
72
- err => {
73
- throw err;
74
- }
75
- );
76
- });
77
-
78
- it('should call the request method and throw awsRegion Error', async () => {
79
- const conn = new AwsElasticsearchConnection({
80
- awsRegion: null,
81
- });
82
-
83
- await conn.request({}, err => {
84
- return expect(err).toMatchObject({
85
- message: 'Please provide the awsRegion!',
86
- });
87
- });
88
- });
89
- });