@harisenin/twilio
Advanced tools
Comparing version 1.0.1 to 1.0.2
{ | ||
"name": "@harisenin/twilio", | ||
"version": "1.0.1", | ||
"version": "1.0.2", | ||
"description": "Twilio SDK for harisenincom", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -89,30 +89,26 @@ "use strict"; | ||
Route.group(() => { | ||
Route.post("/callback", async ({ params, request, response }) => { | ||
Route.post("/callback", async ({params, request, response }) => { | ||
const payload = request.all(); | ||
return TwilioCallback.callbackTwilio(payload); | ||
// switch (true) { | ||
// case payload.EventType === "onMessageSent": | ||
// console.info("send text"); | ||
// break; | ||
// case payload.EventType === "onMediaMessageSent": | ||
// console.info("send media"); | ||
// default: | ||
// break; | ||
// } | ||
}); | ||
Route.get("/token/:id", async ({ response, params }) => { | ||
Route.get("/token/:id", async ({response, params}) => { | ||
const id = params.id; | ||
const token = await Twilio.generateToken(id); | ||
return response.ok({ result: token }); | ||
return response.ok({ | ||
result: token | ||
}); | ||
}).as("twilio.generate_token.get"); | ||
Route.post("/token", async ({ response, request }) => { | ||
Route.post("/token", async ({ response, request}) => { | ||
const id = request.post().id; | ||
const token = await Twilio.generateToken(id); | ||
return response.ok({ result: token }); | ||
return response.ok({ | ||
result: token | ||
}); | ||
}).as("twilio.generate_token.post"); | ||
//group route user | ||
Route.post("/create_user", async ({ request, response }) => { | ||
Route.post("/create_user", async ({ request, response}) => { | ||
const payload = request.post(); | ||
@@ -167,3 +163,3 @@ let user = await User.query() | ||
// setTimeout(() => { | ||
// }, 2000); | ||
// }, 2000); | ||
broadcast("onMemberUpdate", updateLastIndexMsg); | ||
@@ -217,6 +213,11 @@ return response.ok({ result: updateLastIndexMsg }); | ||
// exceptPayload.xTwilioWebhookEnabled = true; | ||
let data = { ...exceptPayload, attributes }; | ||
let data = { | ||
...exceptPayload, | ||
attributes | ||
}; | ||
const sid = user.toJSON().twilio_user.sid; | ||
let r = await Twilio.updateUser(sid, data); | ||
return response.ok({ result: r }); | ||
return response.ok({ | ||
result: r | ||
}); | ||
} | ||
@@ -232,3 +233,5 @@ return response.badRequest("Wrong email address"); | ||
const resp = pagination.basicPagination(limit, page); | ||
return response.ok({ result: resp }); | ||
return response.ok({ | ||
result: resp | ||
}); | ||
}); | ||
@@ -248,10 +251,10 @@ Route.post("delete_user", async ({ request, response, params }) => { | ||
"get_or_create_channel_with_target", | ||
async ({ request, response }) => { | ||
async ({ request,response }) => { | ||
const payload = request.post(); | ||
if(payload.user_ids.length > 1){ | ||
if (payload.user_ids.length > 1) { | ||
for (let i = 0; i < payload.user_ids.length; i++) { | ||
await Twilio.generateToken(user_ids[i]); | ||
await Twilio.generateToken(payload.user_ids[i]); | ||
} | ||
} | ||
let [userBuyer,userPartner] = await Promise.all([User.query() | ||
let [userBuyer, userPartner] = await Promise.all([User.query() | ||
.with("user_profile") | ||
@@ -267,3 +270,4 @@ .with("twilio_user") | ||
.where("user_email", payload.user_ids[1]) | ||
.first()]) | ||
.first() | ||
]) | ||
@@ -315,8 +319,6 @@ | ||
fullname: userPartner.toJSON().user_profile.fullname, | ||
is_partner: | ||
userPartner.toJSON().user_partner == null ? 0 : 1, | ||
partner: | ||
userPartner.toJSON().user_partner == null | ||
? null | ||
: partnerData("partner"), | ||
is_partner: userPartner.toJSON().user_partner == null ? 0 : 1, | ||
partner: userPartner.toJSON().user_partner == null ? | ||
null : | ||
partnerData("partner"), | ||
}), | ||
@@ -339,6 +341,5 @@ }, | ||
is_partner: userBuyer.toJSON().user_partner == null ? 0 : 1, | ||
partner: | ||
userBuyer.toJSON().user_partner == null | ||
? null | ||
: partnerData("buyer"), | ||
partner: userBuyer.toJSON().user_partner == null ? | ||
null : | ||
partnerData("buyer"), | ||
}), | ||
@@ -366,4 +367,3 @@ }, | ||
let data = { | ||
friendlyName: | ||
payload.partner_name || user[1].user_partner.partner.partner_name, | ||
friendlyName: payload.partner_name || user[1].user_partner.partner.partner_name, | ||
uniqueName: uniqueNameChannel(user[0].id, user[1].id), | ||
@@ -388,3 +388,5 @@ type: payload.type, | ||
let res = await Promise.all(newPromises) | ||
return response.ok({ result: res[2] }); | ||
return response.ok({ | ||
result: res[2] | ||
}); | ||
} | ||
@@ -421,3 +423,6 @@ ); | ||
// get channel and the member info | ||
Route.get("/get_channel", async ({ request, response }) => { | ||
Route.get("/get_channel", async ({ | ||
request, | ||
response | ||
}) => { | ||
const channel = request.all().channel; | ||
@@ -445,5 +450,10 @@ let r = await Twilio.fetchChannel(channel); | ||
r.member = newMember; | ||
return response.ok({ result: r }); | ||
return response.ok({ | ||
result: r | ||
}); | ||
}); | ||
Route.get("/get_channel_list", async ({ request, response }) => { | ||
Route.get("/get_channel_list", async ({ | ||
request, | ||
response | ||
}) => { | ||
let page = parseInt(request.get().page) || 1; | ||
@@ -454,5 +464,10 @@ let limit = parseInt(request.get().limit) || 10; | ||
const resp = pagination.basicPagination(limit, page); | ||
return response.ok({ result: resp }); | ||
return response.ok({ | ||
result: resp | ||
}); | ||
}); | ||
Route.post("/update_channel", async ({ request, response }) => { | ||
Route.post("/update_channel", async ({ | ||
request, | ||
response | ||
}) => { | ||
const payloadUpdate = request.except(["channelSid"]); | ||
@@ -520,3 +535,5 @@ const channelSid = request.post().channelSid; | ||
u.toJSON().map((item, i) => { | ||
ids.push({ id: item.id }); | ||
ids.push({ | ||
id: item.id | ||
}); | ||
}); | ||
@@ -530,3 +547,5 @@ const channel = await Twilio.fetchChannel(chatId); | ||
.then((val) => { | ||
return response.ok({ result: val }); | ||
return response.ok({ | ||
result: val | ||
}); | ||
}) | ||
@@ -556,3 +575,7 @@ .catch((err) => { | ||
"/create_chat_with_media", | ||
async ({ request, response, auth }) => { | ||
async ({ | ||
request, | ||
response, | ||
auth | ||
}) => { | ||
let payload = request.post(); | ||
@@ -575,4 +598,4 @@ let file = request.file("file"); | ||
await Promise.all([ | ||
helper.uploadMedia(file), | ||
User.query() | ||
helper.uploadMedia(file), | ||
User.query() | ||
.with("twilio_user") | ||
@@ -582,4 +605,4 @@ .with("user_chat") | ||
.first(), | ||
Twilio.getAllMember(payload.channelSid), | ||
]) | ||
Twilio.getAllMember(payload.channelSid), | ||
]) | ||
.then(async (data) => { | ||
@@ -615,4 +638,3 @@ let [r1, r2] = await Promise.all([ | ||
payload.channelSid, | ||
receiver[0].identity, | ||
{ | ||
receiver[0].identity, { | ||
lastConsumedMessageIndex: 0, | ||
@@ -645,5 +667,7 @@ } | ||
const notificationEmail = new EmailNotification(); | ||
await notificationEmail.emailNotifChatMedia(`${userReceiver.toJSON().user_email}`,mailData); | ||
await notificationEmail.emailNotifChatMedia(`${userReceiver.toJSON().user_email}`, mailData); | ||
broadcast("onMessageSent", r2); | ||
return response.ok({ result: r2 }); | ||
return response.ok({ | ||
result: r2 | ||
}); | ||
}) | ||
@@ -665,3 +689,3 @@ .catch((e) => { | ||
return response.status(200).json({ | ||
error_code : 'REQUIRED', | ||
error_code: 'REQUIRED', | ||
error: validation.messages(), | ||
@@ -675,43 +699,45 @@ }); | ||
Twilio.createMessage( | ||
payload.channelSid,{ | ||
payload.channelSid, { | ||
body: payload.body, | ||
type: payload.type, | ||
from: auth.user.id, | ||
attributes: payload.attributes | ||
? JSON.stringify(payload.attributes) | ||
: {}, | ||
attributes: payload.attributes ? | ||
JSON.stringify(payload.attributes) : | ||
{}, | ||
xTwilioWebhookEnabled: true, | ||
} | ||
) | ||
]).then(async (data) => { | ||
]).then(async (data) => { | ||
let userIdSender, userIdReceiver; | ||
data[0].forEach((item, i) => { | ||
if (item.identity === auth.user.id) { | ||
userIdSender = item.identity; | ||
} else { | ||
userIdReceiver = item.identity; | ||
} | ||
}); | ||
const promises = []; | ||
if (data[2].index === 0) { | ||
promises.push( | ||
Twilio.updateMember(payload.channelSid, userIdReceiver, { | ||
lastConsumedMessageIndex: 0, | ||
}) | ||
); | ||
data[0].forEach((item, i) => { | ||
if (item.identity === auth.user.id) { | ||
userIdSender = item.identity; | ||
} else { | ||
promises.push( | ||
Twilio.updateMember(payload.channelSid, userIdSender, { | ||
lastConsumedMessageIndex: +data[2].index, | ||
}) | ||
); | ||
userIdReceiver = item.identity; | ||
} | ||
}); | ||
const promises = []; | ||
if (data[2].index === 0) { | ||
promises.push( | ||
TwilioChat.create({ | ||
chat_id: payload.channelSid, | ||
title:data[1].toJSON().user_twilio, // friendly name sender. | ||
Twilio.updateMember(payload.channelSid, userIdReceiver, { | ||
lastConsumedMessageIndex: 0, | ||
}) | ||
); | ||
await Promise.all(promises); | ||
return response.ok({ result: data[2] }); | ||
} else { | ||
promises.push( | ||
Twilio.updateMember(payload.channelSid, userIdSender, { | ||
lastConsumedMessageIndex: +data[2].index, | ||
}) | ||
); | ||
} | ||
promises.push( | ||
TwilioChat.create({ | ||
chat_id: payload.channelSid, | ||
title: data[1].toJSON().user_twilio, // friendly name sender. | ||
}) | ||
); | ||
await Promise.all(promises); | ||
return response.ok({ | ||
result: data[2] | ||
}); | ||
}); | ||
@@ -724,3 +750,3 @@ | ||
"/load_message", | ||
async ({ request, response, auth, params }) => { | ||
async ({ request, response, auth,params }) => { | ||
let param = request.get().channel_sid; | ||
@@ -739,3 +765,5 @@ let limit = parseInt(request.get().limit) || 10; | ||
const resp = pagination.basicPagination(limit, page); | ||
return response.ok({ result: resp }); | ||
return response.ok({ | ||
result: resp | ||
}); | ||
} | ||
@@ -754,8 +782,5 @@ ); | ||
Route.post("delete_message", async ({ request, response, params }) => { | ||
Route.post("delete_message", async ({ request, response, params}) => { | ||
const payload = request.post(); | ||
const r = await Twilio.deleteMessage( | ||
payload.channelSid, | ||
payload.messageId | ||
); | ||
const r = await Twilio.deleteMessage(payload.channelSid,payload.messageId); | ||
return response.ok({ | ||
@@ -783,3 +808,4 @@ status: r || false, | ||
const resp = pagination.basicPagination(limit, page); | ||
return response.ok({ result: resp }); | ||
return response.ok({ result: resp | ||
}); | ||
}).middleware("auth:jwt"); | ||
@@ -798,3 +824,3 @@ | ||
return response.status(200).json({ | ||
error_code : 'WRONG_PARAMETER', | ||
error_code: 'WRONG_PARAMETER', | ||
message: "User SID not found.", | ||
@@ -874,8 +900,8 @@ }); | ||
}); | ||
Route.get("user_channel_detail", async ({ request, response }) => { | ||
Route.get("user_channel_detail", async ({ | ||
request, | ||
response | ||
}) => { | ||
const payload = request.all(); | ||
const r = await Twilio.getUserChannelDetail( | ||
payload.user_sid, | ||
payload.channel_sid | ||
); | ||
const r = await Twilio.getUserChannelDetail(payload.user_sid,payload.channel_sid); | ||
return response.ok({ result: r }); | ||
@@ -900,2 +926,2 @@ }); | ||
module.exports = TwilioProvider; | ||
module.exports = TwilioProvider; |
@@ -29,4 +29,3 @@ const Ws = use("Ws"); | ||
const memberList = await Twilio.getAllMember(payload.ChannelSid); | ||
let receiver = [], | ||
sender = []; | ||
let receiver = [], sender = []; | ||
memberList.map((item, i) => { | ||
@@ -33,0 +32,0 @@ if (item.identity !== payload.From) receiver.push(item); |
2037
68722