Skip to content

Commit f1f7377

Browse files
authored
Merge pull request #57 from cham11ng/bye-bye-bookshelf
Bye Bye bookshelf, say Hi objection.js
2 parents 401082c + 9a7523d commit f1f7377

17 files changed

+265
-505
lines changed

package.json

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,28 +53,27 @@
5353
],
5454
"dependencies": {
5555
"bcrypt": "^5.0.1",
56-
"bookshelf": "^1.2.0",
5756
"bookshelf-case-converter-plugin": "^2.0.0",
5857
"cors": "^2.8.5",
5958
"date-fns": "^2.11.1",
6059
"dotenv": "^16.0.1",
61-
"express": "4.17.1",
60+
"express": "4.18.1",
6261
"helmet": "^5.1.0",
6362
"http-status-codes": "^2.1.4",
6463
"joi": "^17.6.0",
6564
"jsonwebtoken": "^8.5.1",
66-
"knex": "^0.21.19",
65+
"knex": "^2.1.0",
6766
"morgan": "^1.10.0",
6867
"nodemailer": "^6.6.3",
6968
"nodemailer-markdown": "^1.0.3",
69+
"objection": "^3.0.1",
7070
"pg": "^8.6.0",
7171
"winston": "^3.3.3",
7272
"winston-daily-rotate-file": "^4.5.5"
7373
},
7474
"devDependencies": {
7575
"@faker-js/faker": "^7.3.0",
7676
"@types/bcrypt": "^5.0.0",
77-
"@types/bookshelf": "^1.2.2",
7877
"@types/cors": "^2.8.12",
7978
"@types/express": "^4.17.13",
8079
"@types/jest": "^28.1.3",

src/app.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
11
import cors from 'cors';
22
import helmet from 'helmet';
33
import express from 'express';
4+
import { Model } from 'objection';
45

56
import routes from './routes';
7+
import knex from './config/knex';
68
import logHandler from './middlewares/logHandler';
79
import notFoundHandler from './middlewares/notFoundHandler';
810
import transactionHandler from './middlewares/transactionHandler';
911
import genericErrorHandler from './middlewares/genericErrorHandler';
1012

13+
Model.knex(knex);
14+
1115
const app: express.Application = express();
1216

1317
app.use(cors());

src/config/bookshelf.ts

Lines changed: 0 additions & 9 deletions
This file was deleted.

src/config/knex.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import Knex from 'knex';
2+
import { knexSnakeCaseMappers } from 'objection';
23

34
import config from '../config/config';
45

5-
const dbConfig: Knex.Config = config.db;
6+
const dbConfig = config.db;
67

7-
export default Knex(dbConfig);
8+
export default Knex({ ...dbConfig, ...knexSnakeCaseMappers() });

src/database/migrations/20170517164638_create_user_roles_table.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import Knex from 'knex';
1+
import { Knex } from 'knex';
22

33
import Table from '../../resources/enums/Table';
44

src/database/migrations/20180130005620_create_users_table.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import * as Knex from 'knex';
1+
import { Knex } from 'knex';
22

33
import Table from '../../resources/enums/Table';
44

src/database/migrations/20180517164647_create_user_sessions_table.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import * as Knex from 'knex';
1+
import { Knex } from 'knex';
22

33
import Table from '../../resources/enums/Table';
44

src/database/seeds/user_table_seeder.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import * as Knex from 'knex';
1+
import { Knex } from 'knex';
22

33
import * as bcrypt from '../../utils/bcrypt';
44
import Role from '../../resources/enums/Role';

src/domain/requests/UserSessionPayload.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
*/
44
interface UserSessionPayload {
55
token: string;
6-
userId: string;
6+
userId: number;
77
}
88

99
export default UserSessionPayload;

src/models/User.ts

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,26 @@
1-
import bookshelf from '../config/bookshelf';
1+
import { Model } from 'objection';
22

33
import Table from '../resources/enums/Table';
44

5-
class User extends bookshelf.Model<User> {
6-
get requireFetch(): boolean {
7-
return false;
8-
}
5+
class User extends Model {
6+
id!: number;
7+
name!: string;
8+
email!: string;
9+
password!: string;
10+
roleId!: number;
11+
createdAt!: string;
12+
updatedAt!: string;
913

10-
get tableName(): string {
14+
static get tableName(): string {
1115
return Table.USERS;
1216
}
1317

14-
get hasTimestamps(): boolean {
15-
return true;
18+
$beforeInsert() {
19+
this.createdAt = new Date().toISOString();
20+
}
21+
22+
$beforeUpdate() {
23+
this.updatedAt = new Date().toISOString();
1624
}
1725
}
1826

0 commit comments

Comments
 (0)