Untitled

 avatar
unknown
plain_text
a year ago
2.4 kB
6
Indexable
getAllBrandNames = async (req: RequestWithUserId, res: Response) => {
    try {
      const brands = await this.brandRepository.findAll({
        filter: {},
        projection: 'manufacturer model year _id slug',
      });

      if (!brands.length) {
        return ResponseHandler.notFound({
          req,
          res,
          error: 'No brands found',
          file: 'brand.service.ts',
          functionName: 'getAllBrandNames',
          args: {},
        });
      }

      const responseData = {
        data: brands,
        message: 'All brand details retrieved successfully.',
      };

      return ResponseHandler.success({ res, responseBody: responseData });
    } catch (error) {
      return ResponseHandler.internalServerError({
        req,
        res,
        error: 'An internal error occurred',
        file: 'brand.service.ts',
        functionName: 'getAllBrandNames',
        args: {},
      });
    }
  };

  getUniqueBrand = async (req: Request, res: Response) => {
    try {
      const { id } = req.params;

      if (!Types.ObjectId.isValid(id)) {
        return ResponseHandler.error({
          req,
          res,
          error: 'Invalid brand ID',
          file: 'brand.service.ts',
          functionName: 'getUniqueBrand',
          args: { id },
        });
      }

      const brand = await this.brandRepository.findOne({
        filter: { _id: id },
        projection: 'manufacturer model year _id slug',
      });

      if (!brand) {
        return ResponseHandler.notFound({
          req,
          res,
          error: 'Brand not found',
          file: 'brand.service.ts',
          functionName: 'getUniqueBrand',
          args: { id },
        });
      }

      const responseData = {
        data: {
          id: brand._id,
          slug: brand.slug,
          manufacturer: brand.manufacturer,
          model: brand.model,
          year: brand.year,
        },
        message: 'Brand details retrieved successfully.',
      };

      return ResponseHandler.success({ res, responseBody: responseData });
    } catch (error) {
      return ResponseHandler.internalServerError({
        req,
        res,
        error: 'An internal error occurred',
        file: 'brand.service.ts',
        functionName: 'getUniqueBrand',
        args: { id: req.params.id },
      });
    }
  };
Editor is loading...
Leave a Comment