diff --git a/package-lock.json b/package-lock.json index 4473a19..b7b2cbf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,7 @@ "version": "1.0.0", "license": "ISC", "dependencies": { + "@faker-js/faker": "^7.6.0", "@types/bcrypt": "^5.0.0", "@types/cookie-parser": "^1.4.3", "bcrypt": "^5.1.0", @@ -1753,6 +1754,15 @@ "kuler": "^2.0.0" } }, + "node_modules/@faker-js/faker": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-7.6.0.tgz", + "integrity": "sha512-XK6BTq1NDMo9Xqw/YkYyGjSsg44fbNwYRx7QK2CuoQgyy+f1rrTDHoExVM5PsyXCtfl2vs2vVJ0MN0yN6LppRw==", + "engines": { + "node": ">=14.0.0", + "npm": ">=6.0.0" + } + }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -9655,6 +9665,11 @@ "kuler": "^2.0.0" } }, + "@faker-js/faker": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-7.6.0.tgz", + "integrity": "sha512-XK6BTq1NDMo9Xqw/YkYyGjSsg44fbNwYRx7QK2CuoQgyy+f1rrTDHoExVM5PsyXCtfl2vs2vVJ0MN0yN6LppRw==" + }, "@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", diff --git a/package.json b/package.json index 709067a..cefe7d5 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,8 @@ "test": "jest", "start": "tsc && node --unhandled-rejections=strict -r dotenv/config ./dist/infrastructure/app/app.js", "debug": "set DEBUG=* && npm run start", - "migrations": "tsc && npx sequelize db:create && npx sequelize db:migrate" + "migrations": "tsc && npx sequelize db:create && npx sequelize db:migrate", + "mocks": "tsc && node ./dist/infrastructure/persistence/mocks/mocks.js" }, "repository": { "type": "git", @@ -25,6 +26,7 @@ }, "homepage": "https://github.com/thiagodrodrigues/Prontuario-Digital#readme", "dependencies": { + "@faker-js/faker": "^7.6.0", "@types/bcrypt": "^5.0.0", "@types/cookie-parser": "^1.4.3", "bcrypt": "^5.1.0", diff --git a/src/adapters/repositories/appointments.repository.ts b/src/adapters/repositories/appointments.repository.ts index 0071487..fccfbe1 100644 --- a/src/adapters/repositories/appointments.repository.ts +++ b/src/adapters/repositories/appointments.repository.ts @@ -1,6 +1,6 @@ import { IDatabaseModel } from "../../infrastructure/persistence/database.model.interface"; import { AppointmentEntity } from "../../domain/entities/appointments/appointments.entity"; -import { MySqlDatabase } from "../../infrastructure/persistence/mysql/mysql.database"; +import { MySqlDatabase } from "../../infrastructure/persistence/mysql/mysql.Database"; import { IAppointmentsRepository } from "../../domain/repositories/appointments.repository.interface" import * as Sequelize from 'sequelize' import appointmentModel from '../../infrastructure/persistence/mysql/models/appointment.models.mysql.DB'; @@ -70,6 +70,7 @@ export class AppointmentRepository implements IAppointmentsRepository { async updateById(resource: AppointmentEntity): Promise { console.log(resource) + if(!resource.idAppointment) throw 'idAppointment não forneceido' let examsModel = await this._database.read(this._modelAppointment, resource.idAppointment); console.log(`User Model: ${examsModel}`); const { appointmentGeneral } = entitiesToModels(resource); diff --git a/src/adapters/repositories/exams.repository.ts b/src/adapters/repositories/exams.repository.ts index b998322..3ed9506 100644 --- a/src/adapters/repositories/exams.repository.ts +++ b/src/adapters/repositories/exams.repository.ts @@ -1,6 +1,6 @@ import { IDatabaseModel } from "../../infrastructure/persistence/database.model.interface"; import { ExamEntity } from "../../domain/entities/exams/exams.entity"; -import { MySqlDatabase } from "../../infrastructure/persistence/mysql/mysql.database"; +import { MySqlDatabase } from "../../infrastructure/persistence/mysql/mysql.Database"; import { IExamsRepository } from "../../domain/repositories/exams.repository.interface" import * as Sequelize from 'sequelize' import examsModel from '../../infrastructure/persistence/mysql/models/exams.models.mysql.DB'; @@ -56,7 +56,7 @@ export class ExamsRepository implements IExamsRepository { } async deleteById(resourceId: number): Promise { - await this._database.delete(this._modelExam, { idExams: resourceId }); + await this._database.delete(this._modelExam, { idExams: resourceId }); } async list(): Promise { @@ -67,6 +67,7 @@ export class ExamsRepository implements IExamsRepository { async updateById(resource: ExamEntity): Promise { console.log(resource); + if(!resource.idExams) throw 'idExams não forneceido' let examsModel = await this._database.read(this._modelExam, resource.idExams); console.log(`Repositorio, Update 1`, examsModel); const { examGeneral } = entitiesToModels(resource); diff --git a/src/adapters/repositories/users.repository.ts b/src/adapters/repositories/users.repository.ts index 301a509..60759f5 100644 --- a/src/adapters/repositories/users.repository.ts +++ b/src/adapters/repositories/users.repository.ts @@ -1,6 +1,6 @@ import { IDatabaseModel } from "../../infrastructure/persistence/database.model.interface"; import { UsersEntity } from "../../domain/entities/users/users.entity"; -import { MySqlDatabase } from "../../infrastructure/persistence/mysql/mysql.database"; +import { MySqlDatabase } from "../../infrastructure/persistence/mysql/mysql.Database"; import { IUsersRepository } from "../../domain/repositories/users.repository.interface"; import * as Sequelize from 'sequelize' import userModel from '../../infrastructure/persistence/mysql/models/user.models.mysql.DB'; @@ -68,7 +68,8 @@ export class UsersRepository implements IUsersRepository { } async updateById(resource: UsersEntity): Promise { - + + if(!resource.idUser) throw 'IdUser não forneceido' let userModel = await this._database.read(this._modelUser, resource.idUser); const { userGeneral } = entitiesToModels(resource); diff --git a/src/domain/entities/appointments/appointment.entity.ts b/src/domain/entities/appointments/appointment.entity.ts index b4fd98b..c8e8511 100644 --- a/src/domain/entities/appointments/appointment.entity.ts +++ b/src/domain/entities/appointments/appointment.entity.ts @@ -1,5 +1,5 @@ export interface IAppointmentEntity { - idAppointment: number, + idAppointment?: number, idUser: number, doctor: string, hospital: string, diff --git a/src/domain/entities/exams/exam.entity.ts b/src/domain/entities/exams/exam.entity.ts index 1e00f18..2028c47 100644 --- a/src/domain/entities/exams/exam.entity.ts +++ b/src/domain/entities/exams/exam.entity.ts @@ -1,5 +1,5 @@ export interface IExamEntity { - idExams: number, + idExams?: number, idUser: number, exam: string, date: Date, diff --git a/src/domain/entities/users/user.entity.ts b/src/domain/entities/users/user.entity.ts index d62eeae..40172e1 100644 --- a/src/domain/entities/users/user.entity.ts +++ b/src/domain/entities/users/user.entity.ts @@ -1,5 +1,5 @@ export interface IUserEntity { - idUser: number, + idUser?: number, name?: string, email?: string, password?: string, diff --git a/tsconfig.json b/tsconfig.json index 94f4231..28caf23 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -27,7 +27,7 @@ /* Modules */ "module": "commonjs", /* Specify what module code is generated. */ "rootDir": "./src", /* Specify the root folder within your source files. */ - // "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */ + "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */ // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */