#6427 - SMS Recover Password #2037

Open
jsegarra wants to merge 72 commits from 6427_sms_resetPassword into dev
5 changed files with 77 additions and 88 deletions
Showing only changes of commit 6e169768db - Show all commits

View File

@ -2,8 +2,39 @@ const got = require('got');
const isProduction = require('vn-loopback/server/boot/isProduction'); const isProduction = require('vn-loopback/server/boot/isProduction');
const {models} = require('vn-loopback/server/server'); const {models} = require('vn-loopback/server/server');
module.exports = async(destination, message) => { module.exports = Self => {
Self.remoteMethod('send', {
description: 'Sends SMS to a destination phone',
accessType: 'WRITE',
accepts: [
{
arg: 'destination',
type: 'string',
required: true,
},
{
arg: 'message',
type: 'string',
required: true,
}
],
returns: {
type: 'object',
root: true
},
http: {
path: `/send`,
verb: 'POST'
}
});
Self.send = async(ctx, destination, message) => {
const smsConfig = await models.SmsConfig.findOne(); const smsConfig = await models.SmsConfig.findOne();
const userId = ctx.req.accessToken.userId;
if (destination.length == 9) {
const spainPrefix = '0034';
destination = spainPrefix + destination;
}
const params = { const params = {
api_key: smsConfig.apiKey, api_key: smsConfig.apiKey,
@ -25,7 +56,24 @@ module.exports = async(destination, message) => {
response = await got.post(smsConfig.uri, jsonTest).json(); response = await got.post(smsConfig.uri, jsonTest).json();
} }
} catch (e) { } catch (e) {
response = e; console.error(e);
} }
return response; // return response;
jsegarra marked this conversation as resolved Outdated
Outdated
Review

Eliminar linea comentada

Eliminar linea comentada
const [result] = response.result;
const error = result.error_id;
const newSms = {
senderFk: userId,
destination: destination,
message: message,
status: error
};
const sms = await Self.create(newSms);
if (error)
throw new UserError(`We weren't able to send this SMS`);
return sms;
};
}; };

3
back/models/sms.js Normal file
View File

@ -0,0 +1,3 @@
module.exports = Self => {
require('../methods/sms/sendSms')(Self);
};

View File

@ -4,7 +4,7 @@
"base": "VnModel", "base": "VnModel",
"options": { "options": {
"mysql": { "mysql": {
"table": "sms" "table": "vn.sms"
} }
}, },
"properties": { "properties": {

View File

@ -1,62 +0,0 @@
const UserError = require('vn-loopback/util/user-error');
const sendSms = require('../../../../../back/methods/sms/sendSms');
module.exports = Self => {
Self.remoteMethod('send', {
description: 'Sends SMS to a destination phone',
accessType: 'WRITE',
accepts: [
{
arg: 'destination',
type: 'string',
required: true,
},
{
arg: 'message',
type: 'string',
required: true,
}
],
returns: {
type: 'object',
root: true
},
http: {
path: `/send`,
verb: 'POST'
}
});
Self.send = async(ctx, destination, message) => {
const userId = ctx.req.accessToken.userId;
if (destination.length == 9) {
const spainPrefix = '0034';
destination = spainPrefix + destination;
}
let response;
try {
response = await sendSms(destination, message);
} catch (e) {
console.error(e);
}
const [result] = response.result;
const error = result.error_id;
const newSms = {
senderFk: userId,
destination: destination,
message: message,
status: error
};
const sms = await Self.create(newSms);
if (error)
throw new UserError(`We weren't able to send this SMS`);
return sms;
};
};