feat(origin): create method url_/geturl redf #5979

This commit is contained in:
Pablo Natek 2023-10-17 13:56:49 +02:00
parent 4f911e644c
commit 9870a0e60a
5 changed files with 35 additions and 17 deletions

View File

@ -25,22 +25,24 @@ module.exports = Self => {
}); });
Self.sendCheckingPresence = async(ctx, recipientId, message) => { Self.sendCheckingPresence = async(ctx, recipientId, message) => {
console.log('recipientId: ', recipientId);
if (!recipientId) return false; if (!recipientId) return false;
const models = Self.app.models; const models = Self.app.models;
const userId = ctx.req.accessToken.userId; console.log('sender: ', ctx.req.accessToken.userId);
const sender = await models.VnUser.findById(userId, {fields: ['id']}); const sender = ctx.req.accessToken.userId;
const recipient = await models.VnUser.findById(recipientId, null); console.log('sender: ', sender);
const recipient = recipientId;
console.log('recipient: ', recipient);
console.log('recipientId == sender: ', recipientId == sender);
// Prevent sending messages to yourself // Prevent sending messages to yourself
if (recipientId == userId) return false; if (recipientId == sender) return false;
if (!recipient) if (!recipient)
throw new Error(`Could not send message "${message}" to worker id ${recipientId} from user ${userId}`); throw new Error(`Could not send message "${message}" to worker id ${recipientId} from user ${sender}`);
if (process.env.NODE_ENV == 'test') if (process.env.NODE_ENV == 'test')
message = `[Test:Environment to user ${userId}] ` + message; message = `[Test:Environment to user ${sender}] ` + message;
console.log('chat create');
const chat = await models.Chat.create({ const chat = await models.Chat.create({
senderFk: sender.id, senderFk: sender.id,
recipient: `@${recipient.name}`, recipient: `@${recipient.name}`,
@ -51,6 +53,8 @@ module.exports = Self => {
attempts: 0 attempts: 0
}); });
console.log('chat: ');
try { try {
await Self.sendCheckingUserStatus(chat); await Self.sendCheckingUserStatus(chat);
await Self.updateChat(chat, 'sent'); await Self.updateChat(chat, 'sent');

View File

@ -6,6 +6,10 @@ module.exports = Self => {
require('../methods/chat/sendQueued')(Self); require('../methods/chat/sendQueued')(Self);
Self.observe('before save', async function(ctx) { Self.observe('before save', async function(ctx) {
console.log('chat start 1');
console.log('ctx.isNewInstance: ', ctx.isNewInstance);
console.log('message: ', ctx.instance);
if (!ctx.isNewInstance) return; if (!ctx.isNewInstance) return;
let {message} = ctx.instance; let {message} = ctx.instance;
@ -13,14 +17,15 @@ module.exports = Self => {
const parts = message.match(/(?<=\[)[a-zA-Z0-9_\-+!@#$%^&*()={};':"\\|,.<>/?\s]*(?=])/g); const parts = message.match(/(?<=\[)[a-zA-Z0-9_\-+!@#$%^&*()={};':"\\|,.<>/?\s]*(?=])/g);
if (!parts) return; if (!parts) return;
console.log('chat start 2');
const replacedParts = parts.map(part => { const replacedParts = parts.map(part => {
return part.replace(/[!$%^&*()={};':"\\,.<>/?]/g, ''); return part.replace(/[!$%^&*()={};':"\\,.<>/?]/g, '');
}); });
console.log('chat start 3');
for (const [index, part] of parts.entries()) for (const [index, part] of parts.entries())
message = message.replace(part, replacedParts[index]); message = message.replace(part, replacedParts[index]);
ctx.instance.message = message; ctx.instance.message = message;
console.log('chat end');
}); });
}; };

View File

@ -19,6 +19,11 @@
"principalType": "ROLE", "principalType": "ROLE",
"principalId": "$everyone", "principalId": "$everyone",
"permission": "ALLOW" "permission": "ALLOW"
},{
"accessType": "READ",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "ALLOW"
} }
] ]
} }

View File

@ -2,7 +2,9 @@ const app = require('vn-loopback/server/server');
const LoopBackContext = require('loopback-context'); const LoopBackContext = require('loopback-context');
describe('Update Claim', () => { describe('Update Claim', () => {
let url;
beforeAll(async() => { beforeAll(async() => {
url = await app.models.Application.getUrl();
const activeCtx = { const activeCtx = {
accessToken: {userId: 9}, accessToken: {userId: 9},
http: { http: {
@ -29,7 +31,6 @@ describe('Update Claim', () => {
it(`should throw an error as the user doesn't have rights`, async() => { it(`should throw an error as the user doesn't have rights`, async() => {
const tx = await app.models.Claim.beginTransaction({}); const tx = await app.models.Claim.beginTransaction({});
let error; let error;
try { try {
@ -61,7 +62,7 @@ describe('Update Claim', () => {
expect(error.message).toEqual(`You don't have enough privileges to change that field`); expect(error.message).toEqual(`You don't have enough privileges to change that field`);
}); });
it(`should success to update the claimState to 'canceled' and send a rocket message`, async() => { fit(`should success to update the claimState to 'canceled' and send a rocket message`, async() => {
const tx = await app.models.Claim.beginTransaction({}); const tx = await app.models.Claim.beginTransaction({});
try { try {
@ -77,7 +78,7 @@ describe('Update Claim', () => {
const ctx = { const ctx = {
req: { req: {
accessToken: {userId: claimManagerId}, accessToken: {userId: claimManagerId},
headers: {origin: 'http://localhost'} headers: {origin: url}
}, },
args: { args: {
observation: 'valid observation', observation: 'valid observation',
@ -118,7 +119,7 @@ describe('Update Claim', () => {
const ctx = { const ctx = {
req: { req: {
accessToken: {userId: claimManagerId}, accessToken: {userId: claimManagerId},
headers: {origin: 'http://localhost'} headers: {origin: url}
}, },
args: { args: {
observation: 'valid observation', observation: 'valid observation',

View File

@ -92,7 +92,6 @@ module.exports = Self => {
// When hasToPickUp has been changed // When hasToPickUp has been changed
if (salesPerson && changedHasToPickUp && updatedClaim.hasToPickUp) if (salesPerson && changedHasToPickUp && updatedClaim.hasToPickUp)
notifyPickUp(ctx, salesPerson.id, claim); notifyPickUp(ctx, salesPerson.id, claim);
// When claimState has been changed // When claimState has been changed
if (args.claimStateFk) { if (args.claimStateFk) {
const newState = await models.ClaimState.findById(args.claimStateFk, null, myOptions); const newState = await models.ClaimState.findById(args.claimStateFk, null, myOptions);
@ -123,6 +122,7 @@ module.exports = Self => {
clientName: claim.client().name, clientName: claim.client().name,
claimUrl: `${url}claim/${claim.id}/summary` claimUrl: `${url}claim/${claim.id}/summary`
}); });
console.log(`${url}claim/${claim.id}/summary`);
await models.Chat.sendCheckingPresence(ctx, workerId, message); await models.Chat.sendCheckingPresence(ctx, workerId, message);
} }
@ -136,6 +136,9 @@ module.exports = Self => {
clientName: claim.client().name, clientName: claim.client().name,
claimUrl: `${url}claim/${claim.id}/summary` claimUrl: `${url}claim/${claim.id}/summary`
}); });
console.log('url', `${url}claim/${claim.id}/summary`);
console.log('claim client', claim.client().name);
console.log('claim id', claim.id);
await models.Chat.sendCheckingPresence(ctx, workerId, message); await models.Chat.sendCheckingPresence(ctx, workerId, message);
} }
}; };