From a2fbf8244d3eeb7522f17668533a7d7045d297e0 Mon Sep 17 00:00:00 2001 From: Rohan Likhite Date: Sat, 2 May 2020 12:35:56 -0400 Subject: [PATCH 1/4] fixed create block log comment --- src/controllers/block.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/controllers/block.ts b/src/controllers/block.ts index 02d8a22..09671d9 100644 --- a/src/controllers/block.ts +++ b/src/controllers/block.ts @@ -19,7 +19,7 @@ class BlockController { throw new Error('max number of blocks reached') } - logger.info('Creating new block in account: ${accountUUID}') + logger.info(`Creating new block in account: ${accountUUID}`) const _block = new Block(accountUUID, name, payload) await _block.store() From 129dea7fb8eac8dfc6002bf0619c8a05c891ec3f Mon Sep 17 00:00:00 2001 From: Rohan Likhite Date: Sat, 2 May 2020 12:36:14 -0400 Subject: [PATCH 2/4] added account uuid to account creation log --- src/controllers/account.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/controllers/account.ts b/src/controllers/account.ts index 09e43b7..d59c238 100644 --- a/src/controllers/account.ts +++ b/src/controllers/account.ts @@ -21,7 +21,7 @@ class AccountController { const { contactEmail } = params await mailer.sendWelcomeEmail(contactEmail, _accountUUID) - logger.logAndSlack(`Account created for ${contactEmail}`) + logger.logAndSlack(`Account created for ${contactEmail}: ${_accountUUID}`) return _accountUUID } catch (error) { logger.error(`Account creation failed: ${error.message}`) From f18d2b05b140f1cf8b9ef8cc68deeb053f418b45 Mon Sep 17 00:00:00 2001 From: Rohan Likhite Date: Sat, 2 May 2020 12:36:38 -0400 Subject: [PATCH 3/4] replaced redis scan with keys for the time being --- src/models/account.ts | 2 +- src/services/__mocks__/dataStore.ts | 2 +- src/services/dataStore.ts | 8 ++++---- tests/controllers/account.test.ts | 6 +++--- tests/controllers/block.test.ts | 6 +++--- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/models/account.ts b/src/models/account.ts index 8ae0c88..186a27a 100644 --- a/src/models/account.ts +++ b/src/models/account.ts @@ -118,7 +118,7 @@ class Account { public async getBlocks(): Promise { const _accountKey = Account.generateRedisKey(this.uuid) - const _blocks = await dataStore.scan(`${_accountKey}::block:*`, this.maxNumberOfBlocks) + const _blocks = await dataStore.find(`${_accountKey}::block:*`) const _blocksSanitized = _blocks.map((block) => { return block.split(':')[4] diff --git a/src/services/__mocks__/dataStore.ts b/src/services/__mocks__/dataStore.ts index af47300..f6836d4 100644 --- a/src/services/__mocks__/dataStore.ts +++ b/src/services/__mocks__/dataStore.ts @@ -2,7 +2,7 @@ const dataStore = { get: jest.fn(async () => { return }), set: jest.fn(async () => { return }), delete: jest.fn(async () => { return }), - scan: jest.fn(async () => { return }), + find: jest.fn(async () => { return }) } export = dataStore diff --git a/src/services/dataStore.ts b/src/services/dataStore.ts index 8afb8e6..4d5690e 100644 --- a/src/services/dataStore.ts +++ b/src/services/dataStore.ts @@ -79,16 +79,16 @@ const dataStore = { } }, - async scan(pattern: string, count: number): Promise { + async find(pattern: string): Promise { try { const _redisClient = redis.createClient() - const _scan = promisify(_redisClient.scan).bind(_redisClient) - const [ , _storedKeys ] = await _scan(0, 'MATCH', pattern, 'COUNT', count) + const _keys = promisify(_redisClient.keys).bind(_redisClient) + const _storedKeys = await _keys(pattern) _redisClient.quit() return _storedKeys } catch (error) { - logger.error(`Error when scanning keys: ${error.message}`) + logger.error(`Error when finding keys: ${error.message}`) throw new Error('Pantry is having critical issues') } }, diff --git a/tests/controllers/account.test.ts b/tests/controllers/account.test.ts index f89ff3a..d3647d3 100644 --- a/tests/controllers/account.test.ts +++ b/tests/controllers/account.test.ts @@ -67,7 +67,7 @@ describe('When retrieving an account', () => { it ('returns the correct account attributes', async () => { mockedDataStore.get.mockReturnValueOnce(Promise.resolve(JSON.stringify(_existingAccount))) - mockedDataStore.scan.mockReturnValueOnce(Promise.resolve([])) + mockedDataStore.find.mockReturnValueOnce(Promise.resolve([])) const _accountBase: IAccount = await AccountController.get(_existingAccount.uuid) expect(_accountBase).toBeDefined() @@ -94,7 +94,7 @@ describe('When deleting an account', () => { it ('returns confirmation message', async () => { mockedDataStore.get.mockReturnValueOnce(Promise.resolve(JSON.stringify(_existingAccount))) - mockedDataStore.scan.mockReturnValueOnce(Promise.resolve([])) + mockedDataStore.find.mockReturnValueOnce(Promise.resolve([])) const _response = await AccountController.delete(_existingAccount.uuid) expect(_response).toMatch(/Your Pantry has been deleted/) @@ -105,7 +105,7 @@ describe('When deleting an account', () => { .mockReturnValueOnce(Promise.resolve(JSON.stringify(_existingAccount))) .mockReturnValueOnce(Promise.resolve(JSON.stringify({ derp: 'flerp' }))) - mockedDataStore.scan.mockReturnValueOnce(Promise.resolve(['existingBlock'])) + mockedDataStore.find.mockReturnValueOnce(Promise.resolve(['existingBlock'])) const _response = await AccountController.delete(_existingAccount.uuid) expect(_response).toMatch(/Your Pantry has been deleted/) diff --git a/tests/controllers/block.test.ts b/tests/controllers/block.test.ts index 453be82..4503a9d 100644 --- a/tests/controllers/block.test.ts +++ b/tests/controllers/block.test.ts @@ -27,7 +27,7 @@ describe('When creating a block', () => { const _accountUUID = '6dc70531-d0bf-4b3a-8265-b20f8a69e180' mockedDataStore.get.mockReturnValueOnce(Promise.resolve(JSON.stringify(_existingAccount))) - mockedDataStore.scan.mockReturnValueOnce(Promise.resolve([])) + mockedDataStore.find.mockReturnValueOnce(Promise.resolve([])) const _response = await BlockController.create(_accountUUID, 'NewBlock', { derp: 'flerp' }) expect(_response).toMatch(/Your Pantry was updated with basket: NewBlock/) @@ -37,7 +37,7 @@ describe('When creating a block', () => { const _accountUUID = '6dc70531-d0bf-4b3a-8265-b20f8a69e180' mockedDataStore.get.mockReturnValueOnce(Promise.resolve(JSON.stringify(_existingAccount))) - mockedDataStore.scan.mockReturnValueOnce(Promise.resolve([])) + mockedDataStore.find.mockReturnValueOnce(Promise.resolve([])) await expect(BlockController.create(_accountUUID, 'NewBlock', {})) .rejects @@ -56,7 +56,7 @@ describe('When creating a block', () => { } mockedDataStore.get.mockReturnValueOnce(Promise.resolve(JSON.stringify(_maxedAccount))) - mockedDataStore.scan.mockReturnValueOnce(Promise.resolve(['oldBlock'])) + mockedDataStore.find.mockReturnValueOnce(Promise.resolve(['oldBlock'])) await expect(BlockController.create(_accountUUID, 'NewBlock', { derp: 'flerp' })) .rejects From c3b69b327a712534c10aeac6998534aea6180c7a Mon Sep 17 00:00:00 2001 From: Rohan Likhite Date: Sat, 2 May 2020 12:37:07 -0400 Subject: [PATCH 4/4] fixed linting --- src/services/__mocks__/dataStore.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/services/__mocks__/dataStore.ts b/src/services/__mocks__/dataStore.ts index f6836d4..f08604f 100644 --- a/src/services/__mocks__/dataStore.ts +++ b/src/services/__mocks__/dataStore.ts @@ -2,7 +2,7 @@ const dataStore = { get: jest.fn(async () => { return }), set: jest.fn(async () => { return }), delete: jest.fn(async () => { return }), - find: jest.fn(async () => { return }) + find: jest.fn(async () => { return }), } export = dataStore