src/api/v2/projects/assettypes/asset.types.controller.tsmodified
import { Request, Response } from "express";
import { LoggerFactory } from "../../../../util/logger";
import { createApiErrorResponse } from "../../../../util/errorFormatter";
import * as service from "../../../../services/asset.types.service";

const logger = LoggerFactory("AssetTypesController");

export const listAssetTypes = async (req: Request, res: Response) => {
    const { projectId } = req.params;
    try {
        const assetTypes = await service.listAssetTypes(projectId);
        return res.status(200).json(assetTypes);
    } catch (err) {
        logger.error("Error listing asset types", err);
        return createApiErrorResponse(err, res);
    }
};

export const getAssetType = async (req: Request, res: Response) => {
    const { projectId, assetTypeId } = req.params;
    try {
        const assetType = await service.getAssetTypeById(projectId, assetTypeId);
        return res.status(200).json(assetType);
    } catch (err) {
        logger.error("Error getting asset type", err);
        return createApiErrorResponse(err, res);
    }
};

export const createAssetType = async (req: Request, res: Response) => {
    const { projectId } = req.params;
    const { name, description = null } = req.body;
    try {
        const assetType = await service.createAssetType(projectId, name, description);
        return res.status(201).json(assetType);
    } catch (err) {
        logger.error("Error creating asset type", err);
        return createApiErrorResponse(err, res);
    }
};