This commit is contained in:
wayanrivan
2026-04-30 08:32:15 +07:00
parent bb2d77e825
commit a9d0f649a8

View File

@ -1,5 +1,5 @@
import { NextFunction, Response } from "express";
import { RegistrationFee, Service,Paging } from "entity";
import { RegistrationFee, Service, Paging } from "entity";
import { Request } from "express-jwt";
import Joi from "joi";
import { ILogObj, Logger } from "tslog";
@ -24,8 +24,12 @@ export class RegistrationFeeController {
/*
#swagger.tags = ['Registration Fee']
#swagger.security = [{ "bearerAuth": [] }]
#swagger.parameters['filter'] = { description: '', in: 'query', type: 'string' }
#swagger.parameters['limit'] = { in: 'query', required: true, type: 'number' }
#swagger.parameters['filter'] = {
description: "Filter in JSON format. Available fields: type (string, exact match), service_name (string, partial match case-insensitive), service_id (number, exact match). Example: {\"type\":\"premium\",\"service_name\":\"konsultasi\",\"service_id\":5}",
in: 'query',
type: 'string'
}
#swagger.parameters['limit'] = { in: 'query', required: true, type: 'number' }
#swagger.parameters['page'] = { in: 'query', required: true, type: 'number' }
#swagger.parameters['with_deleted'] = { in: 'query', required: true, type: 'boolean' }
#swagger.parameters['order_field'] = { in: 'query', required: true, type: 'string' }
@ -47,16 +51,10 @@ export class RegistrationFeeController {
const query = OrmHelper.DB.getRepository(RegistrationFee)
.createQueryBuilder("RegistrationFee")
.leftJoinAndMapMany(
"RegistrationFee.services",
Service,
"service",
"service.id::text = ANY(RegistrationFee.service)"
)
.leftJoinAndSelect("RegistrationFee.services", "service")
.select([
"RegistrationFee.id",
"RegistrationFee.type",
"RegistrationFee.service",
"RegistrationFee.created_at",
"RegistrationFee.updated_at",
"service.id",
@ -73,6 +71,11 @@ export class RegistrationFeeController {
query.andWhere("service.name ILIKE :service_name", { service_name: `%${filter.service_name}%` });
}
// ── Filter service.id ─────────────────────────────────────────────
if (filter.service_id && filter.service_id !== "") {
query.andWhere("service.id = :service_id", { service_id: filter.service_id });
}
if (param.with_deleted) {
query.withDeleted();
}