Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | 1x 1x 1x 1x 1x 1x 1x | import {post, requestBody, HttpErrors} from '@loopback/rest';
import {inject, service} from '@loopback/core';
import {authenticate} from '@loopback/authentication';
import {PmoService} from '@logchain/services/scan/pmo.service';
import {LoggingService} from '@logchain/services/logging.service';
@authenticate('aws-cognito')
export class ScanPmoController {
constructor(
@service(PmoService)
public pmoService: PmoService,
@inject('services.LoggingService')
private loggingService: LoggingService,
) {}
/**
* SCAN PMO / EQ / SHIPMENT
*/
@post('/scan')
async scan(
@requestBody({
content: {
'application/json': {
schema: {
type: 'object',
required: ['code', 'type'],
properties: {
code: {
type: 'string',
},
type: {
type: 'string',
enum: ['pmo', 'equipment', 'shipment'],
},
},
},
},
},
})
body: {
code: string;
type: string;
},
) {
const start = Date.now();
try {
const {code, type} = body;
if (!code?.trim()) {
throw new HttpErrors.BadRequest('Code is required');
}
const result = await this.pmoService.findByScan(
code.trim(),
type,
);
await this.loggingService.logApi({
endpoint: '/scan',
method: 'POST',
statusCode: 200,
responseTime: Date.now() - start,
});
return result;
} catch (e) {
await this.loggingService.logApi({
endpoint: '/scan',
method: 'POST',
statusCode: 500,
responseTime: Date.now() - start,
});
throw e;
}
}
} |