Skip to content

Commit

Permalink
Added redis in request to get transactions
Browse files Browse the repository at this point in the history
  • Loading branch information
BasileusErwin committed May 4, 2023
1 parent 51d6da3 commit 849369d
Show file tree
Hide file tree
Showing 15 changed files with 30 additions and 27 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
"start": "NODE_PATH=dist/src/ node dist/src/server.js",
"test": "env $(cat .env.test | grep -v '#' | xargs) ENV=test jest --verbose --colors --coverage --detectOpenHandles --forceExit --runInBand",
"lint": "yarn rome check {src/,test/}/**/*.ts",
"format": "yarn rome format --write --config-path=. {src/,test/}/**/*.ts"
"format": "yarn rome format --write --config-path=. {src/,test/}**/*.ts"
},
"devDependencies": {
"@types/bcrypt": "^5.0.0",
Expand Down
22 changes: 12 additions & 10 deletions src/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -64,16 +64,18 @@ export class App {
this.server.use(helmet());
this.server.use(cors());

this.server.use(session({
store: redisStore,
resave: false,
saveUninitialized: true,
secret: config.sessionSecret,
name: 'sessionID',
cookie: {
maxAge: redisKeyLifetime,
}
}))
this.server.use(
session({
store: redisStore,
resave: false,
saveUninitialized: true,
secret: config.sessionSecret,
name: 'sessionID',
cookie: {
maxAge: redisKeyLifetime,
},
}),
);
}

private configureRoutes() {
Expand Down
4 changes: 2 additions & 2 deletions src/redis.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@ client.connect();

client.on('error', (err) => logger.error({ err }, 'Redis Client Error'));

export const redisKeyLifetime: number = 30 * 24 * 60 * 60 * 1000 // 30 days
export const redisKeyLifetime: number = 30 * 24 * 60 * 60 * 1000; // 30 days

export const redisStore = new RedisStore({
client: client,
prefix: 'session:',
})
});

export const redisClient: RedisClientType = client;
1 change: 0 additions & 1 deletion src/server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,4 +30,3 @@ const handleDisconnect = () => {
};

handleDisconnect();

4 changes: 3 additions & 1 deletion src/services/auth.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,12 @@ async function login(email: string, password: string, sessionId: string): Promis
throw new CustomError(ApiError.Auth.BAD_AUTH);
}

await redisClient.set(sessionId, user.userId, {
await redisClient.set(`user:${sessionId}`, user.userId, {
EX: redisKeyLifetime,
});

await redisClient.del(sessionId);

return user;
}

Expand Down
2 changes: 1 addition & 1 deletion src/services/middleware.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ async function authorization(req: Request, res: Response, next: NextFunction) {
return next();
}

const userId = await redisClient.get(sessionId);
const userId = await redisClient.get(`user:${sessionId}`);

if (!userId) {
return next();
Expand Down
2 changes: 1 addition & 1 deletion src/types/DTOs/financial_goal/model.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Exclude, Expose, Type } from 'class-transformer';
import { CurrencyEnum, MonthEnum, FinancialGoalsType} from '../../../enums';
import { CurrencyEnum, MonthEnum, FinancialGoalsType } from '../../../enums';
import { TransactionDTO, UserDTO } from '..';

@Exclude()
Expand Down
2 changes: 1 addition & 1 deletion src/types/request/financial_goal/update.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { CurrencyEnum, FinancialGoalsType, MonthEnum } from "../../../enums/index";
import { CurrencyEnum, FinancialGoalsType, MonthEnum } from '../../../enums/index';

export interface UpdateOptions {
type?: FinancialGoalsType;
Expand Down
2 changes: 1 addition & 1 deletion test/integration/cateogry.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ describe('/api/cateogries', () => {
await databaseHelper.destoryDatabase();
await userHelper.createUserFromCSV();

await redisClient.set(userHelper.sessionIdMock, userHelper.userIdMock);
await redisClient.set(`user:${userHelper.sessionIdMock}`, userHelper.userIdMock);
});

describe('Create category', () => {
Expand Down
2 changes: 1 addition & 1 deletion test/integration/financail_goal.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ describe('/api/financial_goals', () => {
await databaseHelper.destoryDatabase();
await userHelper.createUserFromCSV();

await redisClient.set(userHelper.sessionIdMock, userHelper.userIdMock);
await redisClient.set(`user:${userHelper.sessionIdMock}`, userHelper.userIdMock);
});

describe('Create financial goal', () => {
Expand Down
2 changes: 1 addition & 1 deletion test/integration/transaction.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ describe('/api/transactions', () => {
await userHelper.createUserFromCSV();
await categoryHelper.createUserFromCSV(userHelper.userIdMock);

await redisClient.set(userHelper.sessionIdMock, userHelper.userIdMock);
await redisClient.set(`user:${userHelper.sessionIdMock}`, userHelper.userIdMock);
});

describe('Create Transaction type Expenses', () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ describe('/api/transactions Simple Expenses', () => {
await userHelper.createUserFromCSV();
await categoryHelper.createUserFromCSV(userHelper.userIdMock);

await redisClient.set(userHelper.sessionIdMock, userHelper.userIdMock);
await redisClient.set(`user:${userHelper.sessionIdMock}`, userHelper.userIdMock);
});

describe('Create Transaction type Expenses', () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ describe('/api/transactions Simple Income', () => {
await userHelper.createUserFromCSV();
await categoryHelper.createUserFromCSV(userHelper.userIdMock);

await redisClient.set(userHelper.sessionIdMock, userHelper.userIdMock);
await redisClient.set(`user:${userHelper.sessionIdMock}`, userHelper.userIdMock);
});

describe('Create transaction type Income ', () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ describe('/api/transactions Simple INSTALLMENTS', () => {
await userHelper.createUserFromCSV();
await categoryHelper.createUserFromCSV(userHelper.userIdMock);

await redisClient.set(userHelper.sessionIdMock, userHelper.userIdMock);
await redisClient.set(`user:${userHelper.sessionIdMock}`, userHelper.userIdMock);
});

describe('Create transaction type INSTALLMENTS ', () => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import 'jest';
import supertest from 'supertest';
import { App } from '../../../../src/app';
import { ApiError, CurrencyEnum, TransactionType } from '../../../../src/enums';
import { transactionFactory } from '../../../factories';
import { CategoryHelper, TransactionHelper, UserHelper, databaseHelper } from '../../../helpers';
import { StatusCodes } from 'http-status-codes';
import 'jest';
import supertest from 'supertest';
import { redisClient } from '../../../../src/redis';

describe('/api/transactions Simple Saving', () => {
Expand All @@ -20,7 +20,7 @@ describe('/api/transactions Simple Saving', () => {
await userHelper.createUserFromCSV();
await categoryHelper.createUserFromCSV(userHelper.userIdMock);

await redisClient.set(userHelper.sessionIdMock, userHelper.userIdMock);
await redisClient.set(`user:${userHelper.sessionIdMock}`, userHelper.userIdMock);
});

describe('Create transaction type Saving ', () => {
Expand Down

0 comments on commit 849369d

Please sign in to comment.