51 lines
1.3 KiB
JavaScript
51 lines
1.3 KiB
JavaScript
module.exports = Self => {
|
|
Self.remoteMethodCtx('getVersion', {
|
|
description: 'gets app version data',
|
|
accessType: 'READ',
|
|
accepts: [{
|
|
arg: 'app',
|
|
type: 'string',
|
|
required: true
|
|
}],
|
|
returns: {
|
|
type: ['object'],
|
|
root: true
|
|
},
|
|
http: {
|
|
path: `/getVersion`,
|
|
verb: 'GET'
|
|
}
|
|
});
|
|
|
|
Self.getVersion = async(ctx, app) => {
|
|
const {models} = Self.app;
|
|
const userId = ctx.req.accessToken.userId;
|
|
|
|
const workerFk = await models.WorkerAppTester.findOne({
|
|
where: {
|
|
workerFk: userId
|
|
}
|
|
});
|
|
let fields = ['id', 'appName'];
|
|
|
|
if (workerFk)
|
|
fields = fields.concat(['isVersionBetaCritical', 'versionBeta', 'urlBeta']);
|
|
else
|
|
fields = fields.concat(['isVersionCritical', 'version', 'urlProduction']);
|
|
|
|
const filter = {
|
|
where: {
|
|
appName: app
|
|
},
|
|
fields,
|
|
};
|
|
|
|
const result = await Self.findOne(filter);
|
|
return {
|
|
isVersionCritical: result?.isVersionBetaCritical ?? result?.isVersionCritical,
|
|
version: result?.versionBeta ?? result?.version,
|
|
url: result?.urlBeta ?? result?.urlProduction
|
|
};
|
|
};
|
|
};
|