coba.ts
unknown
typescript
2 years ago
2.2 kB
3
Indexable
import { ClientBase } from 'pg'; import { Request, Response } from 'lambda-api'; import { getAuth } from '../../../shared/libs/auth'; import { failure, success } from '../../../shared/libs/response'; import code from '../../../shared/libs/code'; import { validateParameterNumber, validateParameterString } from '../../../shared/libs/validation'; async function getStudent( db: ClientBase, tenantUuid: string, studentId: number ): Promise<any> { try { const queryResult = await db.query(` select student.student_id, student.student_name, student.religion_id from student where deleted_at is null and tenant_uuid = $1 and student_id = $2 `, [ tenantUuid, studentId, ]); if (queryResult.rowCount === 0) { return null; } return queryResult.rows[0]; } catch (e) { console.error('[ERROR-QUERY] - func: getStudent', e); throw Error(code.database_error); } } function validateParameters(req: Request) { const studentId = validateParameterNumber(req.params.student_id); const studentName = validateParameterString(req.query.student_name, false); const religionId = validateParameterNumber(req.query.religion_id, false); console.log(req.query, req.params, req.body); if ( !studentId || studentName === false || religionId === false ) { throw Error(code.input_invalid); } return { student_id: studentId, student_name: studentName, religion_id: religionId, }; } export default async function coba(req: Request, res: Response): Promise<any> { try { const auth = getAuth(req); const param = validateParameters(req); const student = await getStudent(req.namespace.db, auth.tenant_uuid, param.student_id); success(res, { status: true, version: req.version, message: 'success', data: { ...student, test_student_name: param.student_name, test_religion_id: param.religion_id, }, meta: null, }); } catch (e) { failure(res, e); } }
Editor is loading...