diff --git a/main.go b/main.go
index 445c998..1959885 100644
--- a/main.go
+++ b/main.go
@@ -67,6 +67,7 @@ func InitFiberServer() {
},
})
app.Use(logger.New())
+ app.Static("/swagger", "./swagger")
apis.AddApis(app.Group("/v1", middleware.TokenDecrypter, middleware.AllowOnlyValidTokenMiddleWare))
app.Use(func(c *fiber.Ctx) error {
return c.Status(fiber.StatusNotFound).SendString("Sorry can't find that!")
diff --git a/swagger/index.html b/swagger/index.html
new file mode 100644
index 0000000..32d5c19
--- /dev/null
+++ b/swagger/index.html
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+ SwaggerUI
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/swagger/swagger.json b/swagger/swagger.json
new file mode 100644
index 0000000..9e07b8c
--- /dev/null
+++ b/swagger/swagger.json
@@ -0,0 +1,508 @@
+{
+ "openapi": "3.0.0",
+ "info": {
+ "title": "WhatsApp API MultiDevice",
+ "version": "3.7.0",
+ "description": "This API is used for sending whatsapp via API"
+ },
+ "servers": [
+ {
+ "url": "http://localhost:3000/v1"
+ },
+ {
+ "url": "http://localhost:4000/v1"
+ }
+ ],
+ "tags": [
+ {
+ "name": "SendMessages",
+ "description": "Sending Text And Whatsapp Message Over Whatsapp"
+ }
+ ],
+ "paths":{
+ "/send_message": {
+ "post": {
+ "operationId": "appLogin",
+ "tags": [
+ "SendMessages"
+ ],
+ "summary": "Send Text Message",
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "phone": {
+ "type": "string",
+ "example": "6289685028129@s.whatsapp.net",
+ "description": "Phone number with country code"
+ },
+ "caption": {
+ "type": "string",
+ "example": "ini contoh caption video",
+ "description": "Caption to send"
+ },
+ "view_once": {
+ "type": "boolean",
+ "example": "false",
+ "description": "View once"
+ },
+ "video": {
+ "type": "string",
+ "format": "binary",
+ "description": "Video to send"
+ },
+ "compress": {
+ "type": "boolean",
+ "example": "false",
+ "description": "Compress video"
+ }
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SendResponse"
+ }
+ }
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorBadRequest"
+ }
+ }
+ }
+ },
+ "500": {
+ "description": "Internal Server Error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorInternalServer"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/send_media": {
+ "post": {
+ "operationId": "sendMedia",
+ "tags": [
+ "SendMessages"
+ ],
+ "summary": "Send Any Media File",
+ "requestBody": {
+ "content": {
+ "multipart/form-data": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "to"
+ ],
+ "properties": {
+ "to": {
+ "type": "array",
+ "description": "Phone number with country code",
+ "items": {
+ "type": "string",
+ "example": "919999998888"
+ }
+ },
+ "msg": {
+ "type": "string",
+ "example": "selamat malam",
+ "description": "Caption to send"
+ },
+ "file": {
+ "type": "string",
+ "format": "binary",
+ "description": "Media To Be Send"
+ }
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SendResponse"
+ }
+ }
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorBadRequest"
+ }
+ }
+ }
+ },
+ "500": {
+ "description": "Internal Server Error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ErrorInternalServer"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "components": {
+ "schemas": {
+ "UserGroupResponse": {
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "string",
+ "example": "SUCCESS"
+ },
+ "message": {
+ "type": "string",
+ "example": "Success get list groups"
+ },
+ "results": {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "JID": {
+ "type": "string"
+ },
+ "OwnerJID": {
+ "type": "string"
+ },
+ "Name": {
+ "type": "string"
+ },
+ "NameSetAt": {
+ "type": "string"
+ },
+ "NameSetBy": {
+ "type": "string"
+ },
+ "GroupCreated": {
+ "type": "string"
+ },
+ "ParticipantVersionID": {
+ "type": "string"
+ },
+ "Participants": {
+ "type": "array",
+ "items": {
+ "properties": {
+ "JID": {
+ "type": "string"
+ },
+ "IsAdmin": {
+ "type": "boolean"
+ },
+ "IsSuperAdmin": {
+ "type": "boolean"
+ },
+ "Error": {
+ "type": "number"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "UserInfoResponse": {
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "string",
+ "example": "SUCCESS"
+ },
+ "message": {
+ "type": "string",
+ "example": null
+ },
+ "results": {
+ "type": "object",
+ "properties": {
+ "verified_name": {
+ "type": "string",
+ "example": "Aldino Kemal"
+ },
+ "status": {
+ "type": "string",
+ "example": "Hello World"
+ },
+ "picture_id": {
+ "type": "string",
+ "example": 1651459152
+ },
+ "devices": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "User": {
+ "type": "string",
+ "example": 6289685021291
+ },
+ "Agent": {
+ "type": "integer",
+ "example": 0
+ },
+ "Device": {
+ "type": "string",
+ "example": "UNKNOWN"
+ },
+ "Server": {
+ "type": "string",
+ "example": "s.whatsapp.net"
+ },
+ "AD": {
+ "type": "boolean",
+ "example": true
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "UserAvatarResponse": {
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "string",
+ "example": "SUCCESS"
+ },
+ "message": {
+ "type": "string",
+ "example": "Success"
+ },
+ "results": {
+ "type": "object",
+ "properties": {
+ "url": {
+ "type": "string",
+ "example": "https://pps.whatsapp.net/v/t61.24694-24/181358562_385581386633509_6230178822944778044_n.jpg?ccb=11-4&oh=df36c5b990497b8a5758a0f1ad8118a8&oe=620AA726"
+ },
+ "id": {
+ "type": "string",
+ "example": "1635239861"
+ },
+ "type": {
+ "type": "string",
+ "example": "image"
+ }
+ }
+ }
+ }
+ },
+ "UserPrivacyResponse": {
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "string",
+ "example": "SUCCESS"
+ },
+ "message": {
+ "type": "string",
+ "example": "Success get privacy"
+ },
+ "results": {
+ "type": "object",
+ "properties": {
+ "group_add": {
+ "type": "string",
+ "example": "all"
+ },
+ "last_seen": {
+ "type": "string",
+ "example": null
+ },
+ "status": {
+ "type": "string",
+ "example": "all"
+ },
+ "profile": {
+ "type": "string",
+ "example": "all"
+ },
+ "read_receipts": {
+ "type": "string",
+ "example": "all"
+ }
+ }
+ }
+ }
+ },
+ "SendResponse": {
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "string",
+ "example": "SUCCESS"
+ },
+ "message": {
+ "type": "string",
+ "example": "Success"
+ },
+ "results": {
+ "type": "object",
+ "properties": {
+ "message_id": {
+ "type": "string",
+ "example": "3EB0B430B6F8F1D0E053AC120E0A9E5C"
+ },
+ "status": {
+ "type": "string",
+ "example": " success ...."
+ }
+ }
+ }
+ }
+ },
+ "DeviceResponse": {
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "string",
+ "example": "SUCCESS"
+ },
+ "message": {
+ "type": "string",
+ "example": "Fetch device success"
+ },
+ "results": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "example": "Aldino Kemal"
+ },
+ "device": {
+ "type": "string",
+ "example": "628960561XXX.0:64@s.whatsapp.net"
+ }
+ }
+ }
+ }
+ }
+ },
+ "LoginResponse": {
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "string",
+ "example": "SUCCESS"
+ },
+ "message": {
+ "type": "string",
+ "example": "Success"
+ },
+ "results": {
+ "type": "object",
+ "properties": {
+ "qr_duration": {
+ "type": "integer",
+ "example": 30
+ },
+ "qr_link": {
+ "type": "string",
+ "example": "http://localhost:3000/statics/images/qrcode/scan-qr-b0b7bb43-9a22-455a-814f-5a225c743310.png"
+ }
+ }
+ }
+ }
+ },
+ "GenericResponse": {
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "string",
+ "example": "SUCCESS"
+ },
+ "message": {
+ "type": "string",
+ "example": "Success"
+ },
+ "results": {
+ "type": "string",
+ "example": null
+ }
+ }
+ },
+ "ErrorInternalServer": {
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "string",
+ "example": 101,
+ "description": "SYSTEM_CODE_ERROR"
+ },
+ "message": {
+ "type": "string",
+ "example": "you are not loggin",
+ "description": "Detail error message"
+ },
+ "results": {
+ "type": "object",
+ "example": null,
+ "description": "additional data"
+ }
+ }
+ },
+ "ErrorBadRequest": {
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "string",
+ "example": 400,
+ "description": "HTTP Status Code"
+ },
+ "message": {
+ "type": "string",
+ "example": "field cannot be blank",
+ "description": "Detail error message"
+ },
+ "results": {
+ "type": "object",
+ "example": null,
+ "description": "additional data"
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/swagger/swagger.yml b/swagger/swagger.yml
new file mode 100644
index 0000000..078e7b8
--- /dev/null
+++ b/swagger/swagger.yml
@@ -0,0 +1,972 @@
+openapi: 3.0.0
+info:
+ title: WhatsApp API MultiDevice
+ version: 3.7.0
+ description: This API is used for sending whatsapp via API
+servers:
+ - url: http://localhost:3000/v1
+ - url: http://localhost:4000/v1
+tags:
+ - name: SendMessages
+ description: Sending Text And Whatsapp Message Over Whatsapp
+
+paths:
+ /send_message:
+ post:
+ operationId: appLogin
+ tags:
+ - SendMessages
+ summary: Send Text Message
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ phone:
+ type: string
+ example: '6289685028129@s.whatsapp.net'
+ description: Phone number with country code
+ caption:
+ type: string
+ example: ini contoh caption video
+ description: Caption to send
+ view_once:
+ type: boolean
+ example: 'false'
+ description: View once
+ video:
+ type: string
+ format: binary
+ description: Video to send
+ compress:
+ type: boolean
+ example: 'false'
+ description: Compress video
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SendResponse'
+ '400':
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorBadRequest'
+ '500':
+ description: Internal Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorInternalServer'
+ /send_media:
+ post:
+ operationId: sendMedia
+ tags:
+ - SendMessages
+ summary: Send Any Media File
+ requestBody:
+ content:
+ multipart/form-data:
+ schema:
+ type: object
+ required: ["to"]
+ properties:
+ to:
+ type: array
+ description: Phone number with country code
+ items:
+ type: string
+ example: "919999998888"
+ msg:
+ type: string
+ example: selamat malam
+ description: Caption to send
+ file:
+ type: string
+ format: binary
+ description: Media To Be Send
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SendResponse'
+ '400':
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorBadRequest'
+ '500':
+ description: Internal Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorInternalServer'
+ /app/logout:
+ get:
+ operationId: appLogout
+ tags:
+ - app
+ summary: Remove database and logout
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/GenericResponse'
+ '500':
+ description: Internal Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorInternalServer'
+ /app/reconnect:
+ get:
+ operationId: appReconnect
+ tags:
+ - app
+ summary: Reconnecting to whatsapp server
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/GenericResponse'
+ '500':
+ description: Internal Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorInternalServer'
+ /app/devices:
+ get:
+ operationId: appDevices
+ tags:
+ - app
+ summary: Get list connected devices
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DeviceResponse'
+ '500':
+ description: Internal Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorInternalServer'
+ /user/info:
+ get:
+ operationId: userInfo
+ tags:
+ - user
+ summary: User Info
+ parameters:
+ - name: phone
+ in: query
+ schema:
+ type: integer
+ example: '6289685028129@s.whatsapp.net'
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UserInfoResponse'
+ '400':
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorBadRequest'
+ '500':
+ description: Internal Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorInternalServer'
+ /user/avatar:
+ get:
+ operationId: userAvatar
+ tags:
+ - user
+ summary: User Avatar
+ parameters:
+ - name: phone
+ in: query
+ schema:
+ type: integer
+ example: '6289685028129@s.whatsapp.net'
+ - name: is_preview
+ in: query
+ schema:
+ type: boolean
+ example: true
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UserAvatarResponse'
+ '400':
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorBadRequest'
+ '500':
+ description: Internal Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorInternalServer'
+ /user/my/privacy:
+ get:
+ operationId: userMyPrivacy
+ tags:
+ - user
+ summary: User My Privacy Setting
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UserPrivacyResponse'
+ '500':
+ description: Internal Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorInternalServer'
+ /user/my/groups:
+ get:
+ operationId: userMyGroups
+ tags:
+ - user
+ summary: User My List Groups
+ responses:
+ '500':
+ description: Internal Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorInternalServer'
+ /send/message:
+ post:
+ operationId: sendMessage
+ tags:
+ - send
+ summary: Send Message
+ requestBody:
+ content:
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ phone:
+ type: string
+ example: '6289685028129@s.whatsapp.net'
+ description: Phone number with country code
+ message:
+ type: string
+ example: selamat malam
+ description: Message to send
+ reply_message_id:
+ type: string
+ example: 3EB089B9D6ADD58153C561
+ description: Message ID that you want reply
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SendResponse'
+ '400':
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorBadRequest'
+ '500':
+ description: Internal Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorInternalServer'
+ /send/image:
+ post:
+ operationId: sendImage
+ tags:
+ - send
+ summary: Send Image
+ requestBody:
+ content:
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ phone:
+ type: string
+ example: '6289685028129@s.whatsapp.net'
+ description: Phone number with country code
+ caption:
+ type: string
+ example: selamat malam
+ description: Caption to send
+ view_once:
+ type: boolean
+ example: false
+ description: View once
+ image:
+ type: string
+ format: binary
+ description: Image to send
+ compress:
+ type: boolean
+ example: false
+ description: Compress image
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SendResponse'
+ '400':
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorBadRequest'
+ '500':
+ description: Internal Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorInternalServer'
+ /send/file:
+ post:
+ operationId: sendFile
+ tags:
+ - send
+ summary: Send File
+ requestBody:
+ content:
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ phone:
+ type: string
+ example: '6289685028129@s.whatsapp.net'
+ description: Phone number with country code
+ caption:
+ type: string
+ example: selamat malam
+ description: Caption to send
+ file:
+ type: string
+ format: binary
+ description: File to send
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SendResponse'
+ '400':
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorBadRequest'
+ '500':
+ description: Internal Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorInternalServer'
+ /send/video:
+ post:
+ operationId: sendVideo
+ tags:
+ - send
+ summary: Send Video
+ requestBody:
+ content:
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ phone:
+ type: string
+ example: '6289685028129@s.whatsapp.net'
+ description: Phone number with country code
+ caption:
+ type: string
+ example: ini contoh caption video
+ description: Caption to send
+ view_once:
+ type: boolean
+ example: 'false'
+ description: View once
+ video:
+ type: string
+ format: binary
+ description: Video to send
+ compress:
+ type: boolean
+ example: 'false'
+ description: Compress video
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SendResponse'
+ '400':
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorBadRequest'
+ '500':
+ description: Internal Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorInternalServer'
+ /send/contact:
+ post:
+ operationId: sendContact
+ tags:
+ - send
+ summary: Send Contact
+ requestBody:
+ content:
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ phone:
+ type: string
+ example: '6289685024051@s.whatsapp.net'
+ description: Phone number with country code
+ contact_name:
+ type: string
+ example: Aldino Kemal
+ description: Contact name
+ contact_phone:
+ type: string
+ example: '6289685024992'
+ description: Contact phone number
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SendResponse'
+ '400':
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorBadRequest'
+ '500':
+ description: Internal Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorInternalServer'
+ /send/link:
+ post:
+ operationId: sendLink
+ tags:
+ - send
+ summary: Send Link
+ requestBody:
+ content:
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ phone:
+ type: string
+ example: '6289685024051@s.whatsapp.net'
+ description: Phone number with country code
+ link:
+ type: string
+ example: "https://google.com"
+ description: Link to send
+ caption:
+ type: string
+ example: 'Halo ini contoh caption'
+ description: Caption to send
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SendResponse'
+ '400':
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorBadRequest'
+ '500':
+ description: Internal Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorInternalServer'
+ /send/location:
+ post:
+ operationId: sendLocation
+ tags:
+ - send
+ summary: Send Location
+ requestBody:
+ content:
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ phone:
+ type: string
+ example: '6289685024051@s.whatsapp.net'
+ description: Phone number with country code
+ latitude:
+ type: string
+ example: "-7.797068"
+ description: Latitude coordinate
+ longitude:
+ type: string
+ example: '110.370529'
+ description: Longitude coordinate
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SendResponse'
+ '400':
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorBadRequest'
+ '500':
+ description: Internal Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorInternalServer'
+ /message/{message_id}/revoke:
+ post:
+ operationId: revokeMessage
+ tags:
+ - message
+ summary: Revoke Message
+ parameters:
+ - in: path
+ name: message_id
+ schema:
+ type: string
+ required: true
+ description: Message ID
+ requestBody:
+ content:
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ phone:
+ type: string
+ example: '6289685024051@s.whatsapp.net'
+ description: Phone number with country code
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SendResponse'
+ '400':
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorBadRequest'
+ '500':
+ description: Internal Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorInternalServer'
+ /message/{message_id}/reaction:
+ post:
+ operationId: reactMessage
+ tags:
+ - message
+ summary: Send reaction to message
+ parameters:
+ - in: path
+ name: message_id
+ schema:
+ type: string
+ required: true
+ description: Message ID
+ requestBody:
+ content:
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ phone:
+ type: string
+ example: '6289685024051@s.whatsapp.net'
+ description: Phone number with country code
+ emoji:
+ type: string
+ example: "🙏"
+ description: Emoji to react
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SendResponse'
+ '400':
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorBadRequest'
+ '500':
+ description: Internal Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorInternalServer'
+ /group/join-with-link:
+ post:
+ operationId: joinGroupWithLink
+ tags:
+ - group
+ summary: Join group with link
+ requestBody:
+ content:
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ link:
+ type: string
+ example: 'https://chat.whatsapp.com/whatsappKeyJoinGroup'
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SendResponse'
+ '400':
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorBadRequest'
+ '500':
+ description: Internal Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorInternalServer'
+ /group/leave:
+ post:
+ operationId: leaveGroup
+ tags:
+ - group
+ summary: Leave group
+ requestBody:
+ content:
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ group_id:
+ type: string
+ example: '120363024512399999@g.us'
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/GenericResponse'
+ '400':
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorBadRequest'
+ '500':
+ description: Internal Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorInternalServer'
+
+components:
+ schemas:
+ UserGroupResponse:
+ type: object
+ properties:
+ code:
+ type: string
+ example: SUCCESS
+ message:
+ type: string
+ example: Success get list groups
+ results:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ type: object
+ properties:
+ JID:
+ type: string
+ OwnerJID:
+ type: string
+ Name:
+ type: string
+ NameSetAt:
+ type: string
+ NameSetBy:
+ type: string
+ GroupCreated:
+ type: string
+ ParticipantVersionID:
+ type: string
+ Participants:
+ type: array
+ items:
+ properties:
+ JID:
+ type: string
+ IsAdmin:
+ type: boolean
+ IsSuperAdmin:
+ type: boolean
+ Error:
+ type: number
+ UserInfoResponse:
+ type: object
+ properties:
+ code:
+ type: string
+ example: SUCCESS
+ message:
+ type: string
+ example:
+ results:
+ type: object
+ properties:
+ verified_name:
+ type: string
+ example: Aldino Kemal
+ status:
+ type: string
+ example: Hello World
+ picture_id:
+ type: string
+ example: 1651459152
+ devices:
+ type: array
+ items:
+ type: object
+ properties:
+ User:
+ type: string
+ example: 6289685021291
+ Agent:
+ type: integer
+ example: 0
+ Device:
+ type: string
+ example: UNKNOWN
+ Server:
+ type: string
+ example: s.whatsapp.net
+ AD:
+ type: boolean
+ example: true
+ UserAvatarResponse:
+ type: object
+ properties:
+ code:
+ type: string
+ example: SUCCESS
+ message:
+ type: string
+ example: Success
+ results:
+ type: object
+ properties:
+ url:
+ type: string
+ example: 'https://pps.whatsapp.net/v/t61.24694-24/181358562_385581386633509_6230178822944778044_n.jpg?ccb=11-4&oh=df36c5b990497b8a5758a0f1ad8118a8&oe=620AA726'
+ id:
+ type: string
+ example: '1635239861'
+ type:
+ type: string
+ example: 'image'
+ UserPrivacyResponse:
+ type: object
+ properties:
+ code:
+ type: string
+ example: SUCCESS
+ message:
+ type: string
+ example: Success get privacy
+ results:
+ type: object
+ properties:
+ group_add:
+ type: string
+ example: all
+ last_seen:
+ type: string
+ example: null
+ status:
+ type: string
+ example: all
+ profile:
+ type: string
+ example: all
+ read_receipts:
+ type: string
+ example: all
+ SendResponse:
+ type: object
+ properties:
+ code:
+ type: string
+ example: SUCCESS
+ message:
+ type: string
+ example: Success
+ results:
+ type: object
+ properties:
+ message_id:
+ type: string
+ example: '3EB0B430B6F8F1D0E053AC120E0A9E5C'
+ status:
+ type: string
+ example: ' success ....'
+ DeviceResponse:
+ type: object
+ properties:
+ code:
+ type: string
+ example: SUCCESS
+ message:
+ type: string
+ example: Fetch device success
+ results:
+ type: array
+ items:
+ type: object
+ properties:
+ name:
+ type: string
+ example: 'Aldino Kemal'
+ device:
+ type: string
+ example: '628960561XXX.0:64@s.whatsapp.net'
+ LoginResponse:
+ type: object
+ properties:
+ code:
+ type: string
+ example: SUCCESS
+ message:
+ type: string
+ example: Success
+ results:
+ type: object
+ properties:
+ qr_duration:
+ type: integer
+ example: 30
+ qr_link:
+ type: string
+ example: 'http://localhost:3000/statics/images/qrcode/scan-qr-b0b7bb43-9a22-455a-814f-5a225c743310.png'
+ GenericResponse:
+ type: object
+ properties:
+ code:
+ type: string
+ example: SUCCESS
+ message:
+ type: string
+ example: Success
+ results:
+ type: string
+ example: null
+ ErrorInternalServer:
+ type: object
+ properties:
+ code:
+ type: string
+ example: INTERNAL_SERVER_ERROR
+ description: 'SYSTEM_CODE_ERROR'
+ message:
+ type: string
+ example: you are not loggin
+ description: 'Detail error message'
+ results:
+ type: object
+ example: null
+ description: 'additional data'
+ ErrorBadRequest:
+ type: object
+ properties:
+ code:
+ type: string
+ example: 400
+ description: 'HTTP Status Code'
+ message:
+ type: string
+ example: field cannot be blank
+ description: 'Detail error message'
+ results:
+ type: object
+ example: null
+ description: 'additional data'
\ No newline at end of file