Commit 8ac0a8fb authored by Цой Данил's avatar Цой Данил 💬

Wrote services + added db connection to mongoose db. Check back for working + added fixtures file

parent 1f83bb7e
This diff is collapsed.
{
"name": "backend",
"name": "homework",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"dev": "ts-node-dev --respawn --trace-warnings --transpile-only src/index.ts",
"seed": "ts-node-dev --trace-warnings --transpile-only src/fixtures.ts"
"seed": "ts-node-dev --trace-warnings --transpile-only src/fixtures.ts",
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"@types/cors": "^2.8.13",
"@types/mongoose": "^5.11.97",
"@types/jsonwebtoken": "^9.0.1",
"@types/shortid": "^0.0.29",
"bcrypt": "^5.1.0",
"cors": "^2.8.5",
"dotenv": "^16.0.3",
"express": "^4.18.2",
"jsonwebtoken": "^9.0.0",
"mongodb": "^5.1.0",
"mongoose": "^7.0.3",
"multer": "^1.4.5-lts.1",
"shortid": "^2.2.16"
"pg": "^8.10.0",
"pg-hstore": "^2.3.4",
"sequelize": "^6.29.3",
"sequelize-typescript": "^2.1.5",
"shortid": "^2.2.16",
"uuid": "^9.0.0"
},
"devDependencies": {
"@types/bcrypt": "^5.0.0",
"@types/dotenv": "^8.2.0",
"@types/express": "^4.17.17",
"@types/jsonwebtoken": "^9.0.1",
"@types/multer": "^1.4.7"
"@types/mongodb": "^4.0.7",
"@types/mongoose": "^5.11.97",
"@types/multer": "^1.4.7",
"@types/uuid": "^9.0.1",
"@types/validator": "^13.7.14",
"ts-node-dev": "^2.0.0"
}
}
......@@ -2,6 +2,7 @@ import express, { Express } from "express";
import dotenv from 'dotenv';
import cors from 'cors';
import { healthCheckController } from "./controllers/healthCheckController";
import { mongooseDB } from "./repository/mongooseDB";
dotenv.config()
......@@ -20,8 +21,16 @@ class App {
this.app.listen(process.env.APP_PORT, () => {
console.log(`Server is running on http://localhost:${process.env.APP_PORT}`);
})
await mongooseDB.init()
process.on('exit', () => {
mongooseDB.close()
})
} catch(err: unknown){
console.log(err);
}
}
}
const app = new App()
app.init()
\ No newline at end of file
import IPhoto from "../interfaces/IPhoto";
import IPhotoDto from "../interfaces/IPhotoDto";
import IResponse from "../interfaces/IResponse";
import { MongooseDB, mongooseDB } from "../repository/mongooseDB";
export class PhotosService {
private repository: MongooseDB
constructor(){
this.repository = mongooseDB
}
public getAllPhotos = async(): Promise<IResponse<IPhoto[] | null>> => {
return await this.repository.getAllPhotos()
}
public deletePhotoById = async (id: string, user: string): Promise<IResponse<IPhoto | null>> => {
return await this.repository.deletePhotoById(id, user)
}
public getPhotosByUserId = async(id: string): Promise<IResponse<IPhoto[] | null>> => {
return await this.repository.getPhotosByUserId(id)
}
public addPhoto = async(photoDto: IPhotoDto): Promise<IResponse<IPhoto | null>> => {
return await this.repository.addPhoto(photoDto)
}
}
export const photosService = new PhotosService()
\ No newline at end of file
import { EStatuses } from "../enum/EStatuses";
import IPhoto from "../interfaces/IPhoto";
import IPhotoDto from "../interfaces/IPhotoDto";
import IResponse from "../interfaces/IResponse";
import IUserCreateDto from "../interfaces/IUserCreateDto";
import IUserGetDto from "../interfaces/IUserGetDto";
import { mongooseDB, MongooseDB } from "../repository/mongooseDB";
export class UsersService {
private repository: MongooseDB
constructor(){
this.repository = mongooseDB
}
public createUser = async (userDto: IUserCreateDto): Promise<IResponse<IUserGetDto | null>> => {
return await this.repository.createUser(userDto)
}
public loginUser = async (userDto: IUserCreateDto): Promise<IResponse<IUserGetDto | null>> => {
return await this.repository.loginUser(userDto)
}
}
export const usersService = new UsersService()
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment