src/api/v2/projects/assets/assets.controller.tsmodifiedimport { Request, Response } from "express";
import { LoggerFactory } from "../../../../util/logger";
import { createApiErrorResponse } from "../../../../util/errorFormatter";
import * as service from "../../../../services/assets.service";
import { PagingQueryParam } from "../../../../models/ingress";
import { parsePagingQueryParam } from "../../../../middleware/middleware";
import { buildPaginatedQueryResponse } from "../../../../util/pagination.util";
const logger = LoggerFactory("AssetsController");
export const listAssets = async (req: Request, res: Response) => {
const { projectId } = req.params;
const paging: PagingQueryParam = parsePagingQueryParam(req);
try {
const assets = await service.listAssets(projectId, paging);
return res.status(200).json(buildPaginatedQueryResponse(assets));
} catch (err) {
logger.error("Error listing assets", err);
return createApiErrorResponse(err, res);
}
};
export const getAsset = async (req: Request, res: Response) => {
const { projectId, assetId } = req.params;
try {
const asset = await service.getAssetById(projectId, assetId);
return res.status(200).json(asset);
} catch (err) {
logger.error("Error getting asset", err);
return createApiErrorResponse(err, res);
}
};
export const createAsset = async (req: Request, res: Response) => {
const { projectId } = req.params;
const { name, assetTypeId } = req.body;
try {
const asset = await service.createAsset(projectId, assetTypeId, name);
return res.status(201).json(asset);
} catch (err) {
logger.error("Error creating asset", err);
return createApiErrorResponse(err, res);
}
};
export const patchAsset = async (req: Request, res: Response) => {
const { projectId, assetId } = req.params;
const { name } = req.body;
try {
const asset = await service.updateAsset(projectId, assetId, { name });
return res.status(200).json(asset);
} catch (err) {
logger.error("Error updating asset", err);
return createApiErrorResponse(err, res);
}
};