123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- import { Request, Response } from 'express';
- import { VendorCollection } from '../../resources/admin/vendor/VendorCollection';
- import { VendorResource } from '../../resources/admin/vendor/VendorResource';
- import * as VendorService from '../../services/admin/VendorService';
- import { PaginationParam } from '../../utils/PaginationParams';
- import { errorResponse, messageSuccessResponse } from '../../utils/Response';
- import { validateStoreVendorRequest, validateUpdateVendorRequest } from '../../validators/admin/vendor/VendorValidators';
- import { CustomRequest } from '../../types/token/CustomRequest';
- import { HttpException } from '../../utils/HttpException';
- export const getAllVendor = async (req: Request, res: Response): Promise<Response> => {
- try {
- const { page, limit, search, sortBy, orderBy } = PaginationParam(req);
- const { vendors, total } = await VendorService.getAllVendorService({
- page, limit, search, sortBy, orderBy
- });
- return VendorCollection(req, res, vendors, total, page, limit, 'Vendor data successfully retrieved');
- } catch (err) {
- return errorResponse(res, err);
- }
- };
- export const showVendor = async (req: Request, res: Response): Promise<Response> => {
- try {
- const id: string = req.params.id;
- const { vendor } = await VendorService.showVendorService(id);
- return VendorResource(res, vendor, 'Success show vendor');
- } catch (err) {
- return errorResponse(res, err);
- }
- };
- export const storeVendor = async (req: Request, res: Response): Promise<Response> => {
- try {
- const validatedData = validateStoreVendorRequest(req.body);
- await VendorService.storeVendorService(validatedData, req as CustomRequest);
- return messageSuccessResponse(res, 'Success added vendor', 201);
- } catch (err) {
- return errorResponse(res, err);
- }
- };
- export const updateVendor = async (req: Request, res: Response): Promise<Response> => {
- try {
- const validatedData = validateUpdateVendorRequest(req.body);
- await VendorService.updateVendorService(validatedData, req as CustomRequest);
- return messageSuccessResponse(res, 'Success update vendor');
- } catch (err) {
- return errorResponse(res, err);
- }
- };
- export const deleteVendor = async (req: Request, res: Response): Promise<Response> => {
- try {
- const id: string = req.params.id;
- await VendorService.deleteVendorService(id, req as CustomRequest);
- return messageSuccessResponse(res, 'Success delete vendor');
- } catch (err) {
- return errorResponse(res, err);
- }
- };
- export const importVendor = async (req: Request, res: Response): Promise<Response> => {
- try {
- if (!req.file) {
- throw new HttpException("No file uploaded", 400);
- }
- await VendorService.importVendorService(req.file, req as CustomRequest);
- return messageSuccessResponse(res, "Success import vendor", 201);
- } catch (err) {
- return errorResponse(res, err);
- }
- };
|