fix: refs #7917 fix methods, tests, acls #3085

Closed
carlossa wants to merge 35 commits from 7917-freelancerRoute into dev
3 changed files with 21 additions and 53 deletions
Showing only changes of commit bdac9e2167 - Show all commits

View File

@ -72,7 +72,7 @@ module.exports = Self => {
}
});
filter = mergeFilters(filter, {where});
filter = mergeFilters(ctx.args.filter, {where});
const supplier = await Self.app.models.Supplier.isSupplier(ctx, myOptions);
carlossa marked this conversation as resolved Outdated

crear acl getRouteByAgency, comprobar los acl de mas a menos permisivo.

esta part de la tarea no la veig implementada

`crear acl getRouteByAgency, comprobar los acl de mas a menos permisivo.` esta part de la tarea no la veig implementada
if (supplier) {

View File

@ -1,25 +1,20 @@
const app = require('vn-loopback/server/server');
const models = require('vn-loopback/server/server').models;
describe('AgencyTerm filter()', () => {
fdescribe('AgencyTerm filter()', () => {
const authUserId = 9;
const today = Date.vnNew();
today.setHours(2, 0, 0, 0);
let tx;
let ctx = beforeAll.getCtx();
beforeAll(async() => {
ctx = {
req: {
accessToken: {},
headers: {origin: 'http://localhost'},
}
};
});
console.log('ctx', ctx);
it('should return all results matching the filter', async() => {
const tx = await models.AgencyTerm.beginTransaction({});
tx = await models.AgencyTerm.beginTransaction({});
try {
const options = {transaction: tx};
const filter = {};
ctx = {req: {accessToken: {userId: authUserId}}};
const agencyTerms = await models.AgencyTerm.filter(ctx, filter, options);
const firstAgencyTerm = agencyTerms[0];
@ -35,39 +30,23 @@ describe('AgencyTerm filter()', () => {
});
it('should return results matching "search" searching by integer', async() => {
// ctx = {
// args: {
// search: 1,
// }
// };
const filter = {
order: 'isActive ASC, name',
search: 1
};
const ctx = {req: {args: {search: 1}}};
carlossa marked this conversation as resolved Outdated

posau comú en la par superior, en el beforeall hi ha exemples

posau comú en la par superior, en el beforeall hi ha exemples
let result = await app.models.AgencyTerm.filter(ctx, filter);
let result = await app.models.AgencyTerm.filter(ctx);
expect(result.length).toEqual(1);
expect(result[0].routeFk).toEqual(1);
});
it('should return results matching "search" searching by string', async() => {
// ctx = {
// args: {
// search: 'Plants SL',
// }
// };
const filter = {
search: 'Plants SL'
};
let result = await app.models.AgencyTerm.filter(ctx, filter);
const ctx = {req: {args: {search: 'Plants SL'}}};
let result = await app.models.AgencyTerm.filter(ctx);
expect(result.length).toEqual(2);
});
it('should return results matching "from" and "to"', async() => {
const tx = await models.Buy.beginTransaction({});
tx = await models.Buy.beginTransaction({});
const options = {transaction: tx};
try {
@ -77,6 +56,8 @@ describe('AgencyTerm filter()', () => {
const to = Date.vnNew();
to.setHours(23, 59, 59, 999);
const ctx = {req: {args: {from: from, to: to}}};
const results = await models.AgencyTerm.filter(ctx, options);
expect(results.length).toBe(5);
@ -89,31 +70,17 @@ describe('AgencyTerm filter()', () => {
});
it('should return results matching "agencyModeFk"', async() => {
// ctx = {
// args: {
// agencyModeFk: 1,
// }
// };
const filter = {
agencyModeFk: 1,
};
let result = await app.models.AgencyTerm.filter(ctx, filter);
const ctx = {req: {args: {agencyModeFk: 1}}};
let result = await app.models.AgencyTerm.filter(ctx);
expect(result.length).toEqual(1);
expect(result[0].routeFk).toEqual(1);
});
it('should return results matching "agencyFk"', async() => {
// ctx = {
// args: {
// agencyFk: 2,
// }
// };
const filter = {
agencyFk: 2
};
let result = await app.models.AgencyTerm.filter(ctx, filter);
const ctx = {req: {args: {agencyFk: 1}}};
let result = await app.models.AgencyTerm.filter(ctx);
expect(result.length).toEqual(1);
expect(result[0].routeFk).toEqual(2);

View File

@ -164,7 +164,8 @@ module.exports = Self => {
throw new UserError('The social name has an invalid format');
});
carlossa marked this conversation as resolved Outdated

aci es mes sencill que pases el userId directament

aci es mes sencill que pases el userId directament
Self.isSupplier = async(userId, options = {}) => {
Self.isSupplier = async(ctx, options = {}) => {
carlossa marked this conversation as resolved Outdated

ací es on dia que no cal pasar ctx, sino userId

ací es on dia que no cal pasar ctx, sino userId
const userId = ctx.req.accessToken.userId;
const client = await Self.app.models.Client.findById(userId, options);
const supplier = await Self.app.models.Supplier.findOne({where: {nif: client.fi}}, options);
return supplier;