37 lines
1.1 KiB
JavaScript
37 lines
1.1 KiB
JavaScript
|
const strftime = require('strftime');
|
||
|
const database = require(`${appPath}/lib/database`);
|
||
|
const UserException = require(`${appPath}/lib/exceptions/userException`);
|
||
|
|
||
|
module.exports = {
|
||
|
name: 'rpt-zone',
|
||
|
async asyncData(ctx, params) {
|
||
|
if (!params.routeFk)
|
||
|
throw new UserException('No route id specified');
|
||
|
|
||
|
let [[zone]] = await this.methods.fetchRoute(params.routeFk);
|
||
|
|
||
|
if (!zone)
|
||
|
throw new UserException('Route not ready');
|
||
|
|
||
|
return {zone};
|
||
|
},
|
||
|
methods: {
|
||
|
fetchRoute(routeFk) {
|
||
|
return database.pool.query(
|
||
|
`SELECT
|
||
|
r.id,
|
||
|
r.time,
|
||
|
am.name agencyName,
|
||
|
v.numberPlate plateNumber
|
||
|
FROM route r
|
||
|
JOIN agencyMode am ON am.id = r.agencyModeFk
|
||
|
JOIN vehicle v ON v.id = r.vehicleFk
|
||
|
WHERE r.id = ?`, [routeFk]);
|
||
|
},
|
||
|
zoneTime: zoneTime => {
|
||
|
if (zoneTime)
|
||
|
return strftime('%H:%M', zoneTime);
|
||
|
},
|
||
|
},
|
||
|
};
|