Skip to content

Commit

Permalink
chore: start the api
Browse files Browse the repository at this point in the history
  • Loading branch information
hdev14 committed Jan 13, 2024
1 parent 06514a9 commit d4cd286
Show file tree
Hide file tree
Showing 8 changed files with 808 additions and 3 deletions.
729 changes: 727 additions & 2 deletions package-lock.json

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
"license": "ISC",
"devDependencies": {
"@types/bcrypt": "^5.0.2",
"@types/express": "^4.17.21",
"@types/jest": "^29.5.11",
"@types/node": "^20.10.7",
"@types/nodemailer": "^6.4.14",
Expand All @@ -29,6 +30,7 @@
"dependencies": {
"@faker-js/faker": "^8.3.1",
"bcrypt": "^5.1.1",
"express": "^4.18.2",
"nodemailer": "^6.9.8",
"pg": "^8.11.3"
}
Expand Down
37 changes: 37 additions & 0 deletions src/api/Server.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
import express from 'express';
import alerts from './routers/alerts';
import users from './routers/users';

export default class Server {
private _application: express.Application;

constructor() {
this._application = express();
this.setupTopMiddlewares();
this.setupRouters();
this.setupBottomMiddlewares();
}

get application() {
return this._application;
}

private setupTopMiddlewares() {
this._application.use(express.json());
}

private setupRouters() {
this._application.use('/users', users);
this._application.use('/alerts', alerts);
}

private setupBottomMiddlewares() {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
this._application.use((error: Error, _request: express.Request, response: express.Response, _next: express.NextFunction) => {
console.log(error);

return response.status(500).json({ message: 'Internal Server Error' });
});
}
}

Empty file removed src/api/index.ts
Empty file.
14 changes: 14 additions & 0 deletions src/api/routers/alerts.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import { Request, Response, Router } from 'express';

const router = Router();
// const alertService = new AlertService(new PgAlertRepository());

router.post('/', (_request: Request, response: Response) => {
return response.status(204).json();
});

router.delete('/:id', (_request: Request, response: Response) => {
return response.status(204).json();
});

export default router;
26 changes: 26 additions & 0 deletions src/api/routers/users.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import { Request, Response, Router } from 'express';

const router = Router();
// const userService = new UserService(new PgUserRepository(), new BcryptEncryptor());

router.post('/', (_request: Request, response: Response) => {
return response.status(204).json();
});

router.get('/:id', (_request: Request, response: Response) => {
return response.status(204).json();
});

router.get('', (_request: Request, response: Response) => {
return response.status(204).json();
});

router.put('/:id', (_request: Request, response: Response) => {
return response.status(204).json();
});

router.delete('/:id', (_request: Request, response: Response) => {
return response.status(204).json();
});

export default router;
2 changes: 1 addition & 1 deletion src/b3_stock_alerts/AlertService.unit.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ describe('AlertService', () => {
describe('AlertService.createMaxAlert', () => {
it('creates a new max alert', async () => {
expect.assertions(6);

const params = {
user_id: faker.string.uuid(),
amount: faker.number.float(),
Expand Down
1 change: 1 addition & 0 deletions src/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

0 comments on commit d4cd286

Please sign in to comment.