Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
whatsapp-api
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Dhamodharan S
whatsapp-api
Commits
0374ce84
Commit
0374ce84
authored
Jul 03, 2020
by
Dhamodharan S
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add retriving
parent
a75dc717
Pipeline
#35166
passed with stages
in 3 minutes 16 seconds
Changes
7
Pipelines
1
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
65 additions
and
9 deletions
+65
-9
retrive.controller.js
controllers/retrive.controller.js
+43
-0
sentfile.controller.js
controllers/sentfile.controller.js
+3
-5
webhook.controller.js
controllers/webhook.controller.js
+12
-3
api_logs.js
models/api_logs.js
+2
-0
package-lock.json
package-lock.json
+0
-0
package.json
package.json
+3
-1
index.js
routes/index.js
+2
-0
No files found.
controllers/retrive.controller.js
0 → 100644
View file @
0374ce84
const
{
ApiLogs
}
=
require
(
'../config/db.config'
);
var
request
=
require
(
'request'
);
async
function
getAttachment
(
req
,
res
)
{
try
{
console
.
log
(
req
.
body
)
if
(
req
.
body
.
identifier
)
{
let
identifier
=
req
.
body
.
identifier
;
let
message_id
=
req
.
body
.
message_id
;
let
media_id
=
req
.
body
.
media_id
;
let
dataString
=
'{"uri":"unified://'
+
identifier
+
'?messageId= '
+
message_id
+
' &mediaId= '
+
media_id
+
'"}'
;
let
options
=
{
url
:
'https://apiv2.unificationengine.com/v2/message/retrieve'
,
method
:
'POST'
,
body
:
dataString
,
auth
:
{
'user'
:
'a913b40f-aa55-49ef-ae23-bbd4d1baec94'
,
'pass'
:
'025fd444-62b4-4c44-b097-28ef2bde4f6e'
}
};
request
(
options
,
function
(
error
,
response
,
body
)
{
let
respo
=
JSON
.
parse
(
body
);
if
(
respo
.
Status
)
{
ApiLogs
.
create
({
identifier
:
identifier
,
request
:
JSON
.
parse
(
dataString
),
response
:
respo
,
message_id
:
message_id
,
media_id
:
media_id
,
type
:
"retrive"
})
.
then
(
user
=>
res
.
json
({
status
:
200
,
info
:
'OK'
}))
.
catch
(
function
(
err
)
{
console
.
log
(
err
);
res
.
status
(
500
).
send
({
msg
:
"something went wrong!"
});
});
}
else
res
.
status
(
500
).
send
({
error
:
true
,
message
:
respo
});
});
}
else
throw
"bad request"
;
}
catch
(
err
)
{
console
.
log
(
err
);
res
.
status
(
500
).
send
({
error
:
true
,
message
:
err
});
}
}
module
.
exports
=
{
getAttachment
};
\ No newline at end of file
controllers/sentfile.controller.js
View file @
0374ce84
...
...
@@ -17,15 +17,13 @@ async function sentFiles(req, res) {
let
dataString
;
let
type
;
if
(
link
)
{
dataString
=
'{"message": {"receivers":
[{"name":"name","address":"'
+
mobile_number
+
'","Connector":"'
+
identifier
+
'", "type":"individual"}],"parts":[{"id":"1","contentType":"text/plain","data":"'
+
link
+
'" ,"size": '
+
link
.
length
+
'
,"type":"link","sort":0}]}}'
;
dataString
=
'{"message": {"receivers":
[{"name":"name","address":"'
+
mobile_number
+
'" ,"Connector":"'
+
identifier
+
'", "type":"individual"}],"parts": [{"id":"1","contentType":"text/plain","data":"'
+
link
+
'" ,"size": 50
,"type":"link","sort":0}]}}'
;
type
=
'link'
;
}
else
if
(
location_name
)
{
dataString
=
'{"message": {"receivers":
[{"name":"name","address":"'
+
mobile_number
+
'","Connector":"'
+
identifier
+
'", "type":"individual"}],"parts":[{"id":"1","contentType":"application/json","data":{
\
"longitude
\
":'
+
req
.
body
.
longitude
+
',
\
"latitude
\
":'
+
req
.
body
.
latitude
+
',
\
"name
\
":
\
"'
+
req
.
body
.
location_name
+
'
\
",
\
"address
\
":
\
"'
+
req
.
body
.
address
+
'
\
"} ,"size":"'
+
req
.
body
.
address
.
length
+
'" ,"type":"location","sort":0}]}}'
dataString
=
'{"message": {"receivers":
[{"name":"name","address":"'
+
mobile_number
+
'" ,"Connector":"'
+
identifier
+
'", "type":"individual"}],"parts": [{"id":"1","contentType":"application/json","data":"{
\\
"longitude
\\
": '
+
req
.
body
.
longitude
+
',
\\
"latitude
\\
": '
+
req
.
body
.
latitude
+
',
\\
"name
\\
":
\\
"'
+
req
.
body
.
location_name
+
'
\\
",
\\
"address
\\
":
\\
"'
+
req
.
body
.
address
+
'
\\
"}" ,"size": '
+
req
.
body
.
address
.
length
+
',"type":"location","sort":0}]}}'
;
type
=
'location'
;
}
else
{
let
mimetype
=
req
.
file
.
mimetype
;
console
.
log
(
mimetype
);
console
.
log
(
audio
.
includes
(
mimetype
));
let
base_path
=
`local/whatsapp_api/files/
${
req
.
file
.
filename
}
.
${
mimetype
.
split
(
"/"
)[
1
]
}
`
;
const
fileContent
=
fs
.
readFileSync
(
req
.
file
.
path
);
let
result
=
await
S3Upload
.
s3Upload
(
fileContent
,
base_path
,
req
.
file
.
path
);
...
...
@@ -35,7 +33,7 @@ async function sentFiles(req, res) {
let
img_caption
;
req
.
body
.
img_caption
?
(
img_caption
=
req
.
body
.
img_caption
)
:
""
;
if
(
img_caption
)
{
dataString
=
'{"message": {"receivers":[{"name":"name","address":"
'
+
mobile_number
+
'","Connector":"'
+
identifier
+
'", "type":"individual"}],"parts":[{"id":"1","contentType":"text/plain","data":"'
+
img_caption
+
'" ,"size":'
+
img_caption
.
length
+
',"type":"body","sort":0},{"id": "0", "contentType": "'
+
mimetype
+
'" ,"size":'
+
result
.
path
.
length
+
',"type": "image_link","name":"'
+
req
.
file
.
filename
+
'.'
+
mimetype
.
split
(
"/"
)[
1
]
+
'","data":"
'
+
result
.
path
+
'","sort":1}]}}'
;
dataString
=
'{"message": {"receivers":[{"name":"name","address":"
'
+
mobile_number
+
'","Connector":"'
+
identifier
+
'", "type":"individual"}],"parts":[{"id":"1","contentType":"text/plain","data":"'
+
img_caption
+
'" ,"size":'
+
img_caption
.
length
+
',"type":"body","sort":0},{"id": "0", "contentType": "'
+
mimetype
+
'" ,"size":'
+
result
.
path
.
length
+
',"type": "image_link","name":"'
+
req
.
file
.
filename
+
'.'
+
mimetype
.
split
(
"/"
)[
1
]
+
'","data":"
'
+
result
.
path
+
'","sort":1}]}}'
;
}
else
{
dataString
=
'{"message": {"receivers":[{"name":"name","address":"'
+
mobile_number
+
'","Connector":"'
+
identifier
+
'", "type":"individual"}],"parts": [{"id": "0","contentType": "'
+
mimetype
+
'" ,"size":'
+
result
.
path
.
length
+
',"type": "'
+
type
+
'","name":"'
+
req
.
file
.
filename
+
'.'
+
mimetype
.
split
(
"/"
)[
1
]
+
'","data":"'
+
result
.
path
+
'","sort":1}]}}'
;
}
...
...
controllers/webhook.controller.js
View file @
0374ce84
...
...
@@ -3,16 +3,25 @@ const { ApiLogs } = require('../config/db.config');
async
function
saveResponse
(
req
,
res
)
{
try
{
let
response
=
req
.
body
;
let
media_id
=
""
;
let
message_id
=
""
;
console
.
log
(
response
);
if
(
response
.
data
&&
response
.
data
.
connectionname
&&
response
.
data
.
receiveraddress
)
{
ApiLogs
.
create
({
response
:
response
.
data
,
type
:
"webhook"
,
identifier
:
response
.
data
.
connectionname
,
mobile_number
:
response
.
data
.
receiveraddress
})
let
orgevnt
=
""
;
(
response
.
data
.
parts
[
0
]
&&
response
.
data
.
parts
[
0
].
originalEvent
)
?
(
orgevnt
=
JSON
.
parse
(
response
.
data
.
parts
[
0
].
originalEvent
))
:
""
;
console
.
log
(
orgevnt
);
(
response
.
data
.
parts
[
0
]
&&
response
.
data
.
parts
[
0
].
data
)
?
(
media_id
=
response
.
data
.
parts
[
0
].
data
)
:
""
;
(
orgevnt
&&
orgevnt
.
id
)
?
(
message_id
=
orgevnt
.
id
)
:
""
;
console
.
log
(
message_id
);
console
.
log
(
media_id
);
ApiLogs
.
create
({
response
:
response
,
type
:
"webhook"
,
identifier
:
response
.
data
.
connectionname
,
mobile_number
:
response
.
data
.
receiveraddress
,
message_id
:
message_id
,
media_id
:
media_id
})
.
then
(
user
=>
res
.
send
({
status
:
200
,
info
:
'OK'
})
)
.
catch
(
function
(
err
)
{
console
.
log
(
err
);
res
.
status
(
500
).
send
({
msg
:
"something went wrong!"
});
});
}
}
else
res
.
status
(
500
).
send
({
msg
:
"something went wrong!"
});
}
catch
(
err
)
{
console
.
log
(
err
);
// res.status(400).send({error: true, message:err});
...
...
models/api_logs.js
View file @
0374ce84
...
...
@@ -10,6 +10,8 @@ module.exports = (sequelize, type) => {
mobile_number
:
type
.
STRING
,
type
:
type
.
STRING
,
status
:
type
.
STRING
,
message_id
:
type
.
STRING
,
media_id
:
type
.
STRING
,
identifier
:
type
.
STRING
,
created_at
:
{
type
:
'TIMESTAMP'
,
...
...
package-lock.json
View file @
0374ce84
This diff is collapsed.
Click to expand it.
package.json
View file @
0374ce84
...
...
@@ -15,9 +15,11 @@
"
dotenv
"
:
"^8.2.0"
,
"
express
"
:
"^4.16.4"
,
"
http-errors
"
:
"~1.6.3"
,
"
kill
"
:
"0.0.2"
,
"
kill-port
"
:
"^1.6.0"
,
"
multer
"
:
"^1.4.2"
,
"
mysql2
"
:
"^2.1.0"
,
"
nodemon
"
:
"
^2.0.3
"
,
"
nodemon
"
:
"
2.0.0
"
,
"
precache
"
:
"0.0.0"
,
"
request
"
:
"^2.88.2"
,
"
sequelize
"
:
"^5.21.6"
...
...
routes/index.js
View file @
0374ce84
...
...
@@ -3,6 +3,7 @@ const webhookCtrl = require("../controllers/webhook.controller");
const
connectionCtrl
=
require
(
"../controllers/connection.controller"
);
const
messageCtrl
=
require
(
"../controllers/message.controller"
);
const
sentFileCtrl
=
require
(
"../controllers/sentfile.controller"
);
const
retriveCtrl
=
require
(
"../controllers/retrive.controller"
);
var
router
=
express
.
Router
();
var
multer
=
require
(
'multer'
);
...
...
@@ -27,5 +28,6 @@ router.post('/webhook', webhookCtrl.saveResponse);
router
.
get
(
'/create-connection/:mobile_number'
,
connectionCtrl
.
createConnection
);
router
.
post
(
'/sent-message'
,
messageCtrl
.
sentMessage
);
router
.
post
(
'/sent-files'
,
upload
.
single
(
'file'
),
sentFileCtrl
.
sentFiles
);
router
.
post
(
'/retrive'
,
retriveCtrl
.
getAttachment
);
module
.
exports
=
router
;
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment