Compare commits
4 Commits
915b205b6e
...
8fe0fa57d8
Author | SHA1 | Date | |
---|---|---|---|
8fe0fa57d8 | |||
2796b514eb | |||
0053c0ce19 | |||
041e77efcd |
@ -92,12 +92,13 @@ async function getBySlugBrand(req: Request, res: Response): Promise<Response> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieves all brands and sends the response.
|
* Retrieves all brands.
|
||||||
*
|
*
|
||||||
|
* @param {Request} _req - The request object.
|
||||||
* @param {Response} res - The response object.
|
* @param {Response} res - The response object.
|
||||||
* @returns {Promise<Response>} - A Promise that resolves with the response object.
|
* @returns {Promise<Response>} - A promise with the response object.
|
||||||
*/
|
*/
|
||||||
async function getAllBrand(res: Response): Promise<Response> {
|
async function getAllBrand(_req: Request, res: Response): Promise<Response> {
|
||||||
const brands = await BrandService.getAll();
|
const brands = await BrandService.getAll();
|
||||||
if (!brands) {
|
if (!brands) {
|
||||||
logger.error("Failed to retrieve brands");
|
logger.error("Failed to retrieve brands");
|
||||||
|
@ -97,24 +97,27 @@ async function deleteCategory(req: Request, res: Response): Promise<Response> {
|
|||||||
/**
|
/**
|
||||||
* Retrieves all categories.
|
* Retrieves all categories.
|
||||||
*
|
*
|
||||||
|
* @param _req
|
||||||
* @param {Response} res - The response object.
|
* @param {Response} res - The response object.
|
||||||
* @return {Promise<Response>} - A promise that resolves to the response object.
|
* @return {Promise<Response>} - A promise that resolves to the response object.
|
||||||
*/
|
*/
|
||||||
async function getAllCategory(res: Response): Promise<Response> {
|
async function getAllCategory(_req: Request, res: Response): Promise<Response> {
|
||||||
const categories = await CategoryService.getAll();
|
const categories = await CategoryService.getAll();
|
||||||
if (!categories) {
|
if (!categories) {
|
||||||
logger.error("Failed to get categories");
|
logger.error("Failed to get categories");
|
||||||
return res.status(500).json({ error: "Failed to get categories" });
|
return res.status(500).json({ error: "Failed to get categories" });
|
||||||
}
|
}
|
||||||
logger.info("Categories retrieved successfully");
|
logger.info("Categories retrieved successfully");
|
||||||
//ToTest categories output type
|
return res
|
||||||
return res.status(200).json({
|
.status(200)
|
||||||
|
.json({
|
||||||
iat: Date.now(),
|
iat: Date.now(),
|
||||||
categories: categories.map((category: IDbCategory) => ({
|
categories: categories.map((category: IDbCategory) => ({
|
||||||
id: category.id,
|
id: category.id,
|
||||||
display_name: category.display_name,
|
display_name: category.display_name,
|
||||||
slug_name: category.slug_name
|
slug_name: category.slug_name
|
||||||
}))
|
})),
|
||||||
|
total: categories.length
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -0,0 +1,7 @@
|
|||||||
|
export interface IDbVehicle {
|
||||||
|
id?: string;
|
||||||
|
plate_number: string;
|
||||||
|
model_id: string;
|
||||||
|
odometer: number;
|
||||||
|
health_state: number;
|
||||||
|
}
|
@ -3,6 +3,7 @@ import AdminGuard from "@validators/AdminGuard";
|
|||||||
import UserGuard from "@validators/UserGuard";
|
import UserGuard from "@validators/UserGuard";
|
||||||
import CategoryController from "@controllers/category.controller";
|
import CategoryController from "@controllers/category.controller";
|
||||||
import ModelController from "@controllers/model.controller";
|
import ModelController from "@controllers/model.controller";
|
||||||
|
import BrandController from "@controllers/brand.controller";
|
||||||
|
|
||||||
|
|
||||||
const CatalogRouter: Router = express.Router();
|
const CatalogRouter: Router = express.Router();
|
||||||
@ -33,11 +34,11 @@ CatalogRouter.route('/category/:categorySlug')
|
|||||||
|
|
||||||
//-- BRAND >>
|
//-- BRAND >>
|
||||||
|
|
||||||
CatalogRouter.route('/brand/new').post(AdminGuard)
|
CatalogRouter.route('/brand/new').post(AdminGuard, BrandController.create)
|
||||||
CatalogRouter.route('/brand/all').get()
|
CatalogRouter.route('/brand/all').get(BrandController.getAll)
|
||||||
CatalogRouter.route('/brand/:brandSlug')
|
CatalogRouter.route('/brand/:brandSlug')
|
||||||
.get(UserGuard)
|
.get(UserGuard, BrandController.getBySlug)
|
||||||
.patch(AdminGuard)
|
.patch(AdminGuard, BrandController.update)
|
||||||
.delete(AdminGuard)
|
.delete(AdminGuard, BrandController.delete)
|
||||||
|
|
||||||
export default CatalogRouter;
|
export default CatalogRouter;
|
@ -6,6 +6,7 @@ import type {IDbStatusResult} from "@interfaces/database/IDbStatusResult";
|
|||||||
import mysql, {type Connection, type ConnectionOptions} from 'mysql2';
|
import mysql, {type Connection, type ConnectionOptions} from 'mysql2';
|
||||||
import {Logger} from "tslog";
|
import {Logger} from "tslog";
|
||||||
import process from "node:process";
|
import process from "node:process";
|
||||||
|
import {IDbVehicle} from "@interfaces/database/IDbVehicle";
|
||||||
|
|
||||||
|
|
||||||
const access: ConnectionOptions = {
|
const access: ConnectionOptions = {
|
||||||
@ -580,6 +581,64 @@ const MySqlService = {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
Vehicle: {
|
||||||
|
insert(handler: MysqlHandler, data: IDbVehicle) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
if (!data.id) return reject('Id is undefined');
|
||||||
|
if (data.id.length !== 36) return reject('Id invalid');
|
||||||
|
|
||||||
|
const _sql = "INSERT INTO `vehicles`(`model_id`, `plate_number`, `odometer`, `health_state`, `id`) VALUES (?, ?, ?, ?, ?)"
|
||||||
|
const _values = [
|
||||||
|
data.model_id,
|
||||||
|
data.plate_number,
|
||||||
|
data.odometer,
|
||||||
|
data.health_state,
|
||||||
|
data.id
|
||||||
|
]
|
||||||
|
try {
|
||||||
|
resolve(handler.execute(_sql, _values) as unknown as IDbStatusResult)
|
||||||
|
} catch (err: unknown) {
|
||||||
|
reject(err as Error);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
//TODO update by id
|
||||||
|
update(handler: MysqlHandler, data: IDbVehicle) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
//TODO get by slug
|
||||||
|
getBySlug(handler: MysqlHandler, data: IDbVehicle) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
//TODO get all
|
||||||
|
getAll(handler: MysqlHandler, data: IDbVehicle) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
//TODO get available
|
||||||
|
getAvailable(handler: MysqlHandler, data: IDbVehicle) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
//TODO get out of due date
|
||||||
|
getDue(handler: MysqlHandler, data: IDbVehicle) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
Category: {
|
Category: {
|
||||||
/**
|
/**
|
||||||
* Inserts a category into the database.
|
* Inserts a category into the database.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user