Uecko_ERP/modules/customers/src/api/infrastructure/express/controllers/update-customer.controller.ts
2025-09-02 13:06:25 +02:00

25 lines
944 B
TypeScript

import { ExpressController, authGuard, forbidQueryFieldGuard, tenantGuard } from "@erp/core/api";
import { UpdateCustomerRequestDTO } from "../../../../common/dto";
import { UpdateCustomerUseCase } from "../../../application";
export class UpdateCustomerController extends ExpressController {
public constructor(private readonly useCase: UpdateCustomerUseCase) {
super();
// 🔐 Reutiliza guards de auth/tenant y prohíbe 'companyId' en query
this.useGuards(authGuard(), tenantGuard(), forbidQueryFieldGuard("companyId"));
}
protected async executeImpl() {
const companyId = this.getTenantId()!; // garantizado por tenantGuard
const { customer_id } = this.req.params;
const dto = this.req.body as UpdateCustomerRequestDTO;
const result = await this.useCase.execute({ customer_id, companyId, dto });
return result.match(
(data) => this.ok(data),
(err) => this.handleError(err)
);
}
}