44 lines
1.3 KiB
JavaScript
44 lines
1.3 KiB
JavaScript
module.exports = function(Self) {
|
|
Self.remoteMethodCtx('getUserConfig', {
|
|
description: 'returns the information from UserConfig model for the active user',
|
|
accepts: [],
|
|
returns: {
|
|
type: 'object',
|
|
root: true
|
|
},
|
|
http: {
|
|
path: `/getUserConfig`,
|
|
verb: 'get'
|
|
}
|
|
});
|
|
|
|
Self.getUserConfig = async(ctx, options) => {
|
|
const models = Self.app.models;
|
|
const myOptions = {};
|
|
|
|
if (typeof options == 'object')
|
|
Object.assign(myOptions, options);
|
|
|
|
let userConfig = await models.UserConfig.findOne({
|
|
where: {userFk: ctx.req.accessToken.userId}
|
|
}, myOptions);
|
|
|
|
const companyFilter = {where: {code: 'VNL'}};
|
|
const company = await models.Company.findOne(companyFilter, myOptions);
|
|
|
|
const warehouseFilter = {where: {code: 'ALG'}};
|
|
const warehouse = await models.Warehouse.findOne(warehouseFilter, myOptions);
|
|
|
|
if (!userConfig) {
|
|
let newConfig = {
|
|
warehouseFk: warehouse.id,
|
|
companyFk: company.id,
|
|
userFk: ctx.req.accessToken.userId
|
|
};
|
|
|
|
userConfig = await models.UserConfig.create(newConfig, myOptions);
|
|
}
|
|
return userConfig;
|
|
};
|
|
};
|