RyZ
fix: fixing logout logic
28b1128
basePath: /api
definitions:
dto.AssignRoleRequest:
properties:
role:
type: string
user_id:
type: string
required:
- role
- user_id
type: object
dto.AuthResponse:
properties:
access_token:
type: string
success_msg:
type: string
user_id:
type: string
username:
type: string
type: object
dto.ConnectRequest:
type: object
dto.ConnectResponse:
properties:
account_id:
type: string
details:
type: string
message:
type: string
qr_code:
type: string
type: object
dto.ConnectionStatusResponse:
properties:
account_id:
type: string
jid:
type: string
status:
type: string
type: object
dto.ContactResponse:
properties:
full_name:
type: string
jid:
type: string
name:
type: string
phone_number:
type: string
push_name:
type: string
type: object
dto.CreateUserRequest:
properties:
password:
minLength: 6
type: string
role:
type: string
username:
type: string
required:
- password
- role
- username
type: object
dto.ErrorResponse:
properties:
errors: {}
message: {}
meta_data: {}
status:
type: string
type: object
dto.FetchContactsResponse:
properties:
account_id:
type: string
contacts:
items:
$ref: '#/definitions/dto.ContactResponse'
type: array
type: object
dto.LoginRequest:
properties:
password:
type: string
username:
type: string
required:
- password
- username
type: object
dto.MeResponse:
properties:
account_name:
type: string
is_active:
type: boolean
jid:
type: string
phone:
type: string
role:
type: string
user_id:
type: string
username:
type: string
type: object
dto.RegisterEnabledResponse:
properties:
register:
type: boolean
type: object
dto.RegisterRequest:
properties:
password:
minLength: 6
type: string
username:
minLength: 3
type: string
required:
- password
- username
type: object
dto.SendMessageRequest:
properties:
message:
example: Hello world
type: string
recipient:
example: "628123456789"
type: string
required:
- message
- recipient
type: object
dto.SendMessageResponse:
properties:
message_id:
type: string
status:
type: string
type: object
dto.SetRegistrationRequest:
properties:
enabled:
type: boolean
type: object
dto.UpdateUserRequest:
properties:
id:
type: string
password:
minLength: 6
type: string
role:
type: string
username:
type: string
required:
- id
type: object
dto.UserResponse:
properties:
created_at:
type: string
id:
type: string
role:
type: string
username:
type: string
type: object
info:
contact:
email: support@swagger.io
name: API Support
url: http://www.swagger.io/support
description: This is the API documentation for the Whatsapp Backend.
license:
name: Apache 2.0
url: http://www.apache.org/licenses/LICENSE-2.0.html
termsOfService: http://swagger.io/terms/
title: Whatsapp Backend API
version: "1.0"
paths:
/admin/create:
post:
consumes:
- application/json
description: Create a new user with specific role
parameters:
- description: Create User Request
in: body
name: request
required: true
schema:
$ref: '#/definitions/dto.CreateUserRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/dto.UserResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/dto.ErrorResponse'
security:
- BearerAuth: []
summary: Create a new user (Admin)
tags:
- admin
/admin/delete:
post:
consumes:
- application/json
description: Delete a user by ID
parameters:
- description: User ID
in: query
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
security:
- BearerAuth: []
summary: Delete a user (Admin)
tags:
- admin
/admin/set_registration:
post:
consumes:
- application/json
description: Enable or disable user registration
parameters:
- description: Set Registration Request
in: body
name: request
required: true
schema:
$ref: '#/definitions/dto.SetRegistrationRequest'
responses:
"200":
description: OK
schema:
$ref: '#/definitions/dto.RegisterEnabledResponse'
security:
- BearerAuth: []
summary: Toggle registration enabled
tags:
- admin
/admin/update:
post:
consumes:
- application/json
description: Update user details
parameters:
- description: Update User Request
in: body
name: request
required: true
schema:
$ref: '#/definitions/dto.UpdateUserRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/dto.UserResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/dto.ErrorResponse'
security:
- BearerAuth: []
summary: Update a user (Admin)
tags:
- admin
/auth/assign:
post:
consumes:
- application/json
description: Assign a role to a user
parameters:
- description: Assign Role Request
in: body
name: request
required: true
schema:
$ref: '#/definitions/dto.AssignRoleRequest'
produces:
- application/json
responses:
"200":
description: OK
"400":
description: Bad Request
schema:
$ref: '#/definitions/dto.ErrorResponse'
security:
- BearerAuth: []
summary: Assign Role (SuperAdmin)
tags:
- auth
/auth/login:
post:
consumes:
- application/json
description: Login a user with credentials
parameters:
- description: Login Request
in: body
name: request
required: true
schema:
$ref: '#/definitions/dto.LoginRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/dto.AuthResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/dto.ErrorResponse'
summary: Login a user
tags:
- auth
/auth/logout:
post:
description: Logout the current user
responses:
"200":
description: OK
security:
- BearerAuth: []
summary: Logout a user
tags:
- auth
/auth/me:
get:
description: Get the profile of the currently logged-in user
responses:
"200":
description: OK
schema:
$ref: '#/definitions/dto.MeResponse'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/dto.ErrorResponse'
security:
- BearerAuth: []
summary: Get current user profile
tags:
- auth
/auth/refresh:
post:
description: Refresh the access token using the refresh token cookie
responses:
"200":
description: OK
schema:
$ref: '#/definitions/dto.AuthResponse'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/dto.ErrorResponse'
security:
- BearerAuth: []
summary: Refresh access token
tags:
- auth
/auth/register:
post:
consumes:
- application/json
description: Register a new user with the provided details
parameters:
- description: Register Request
in: body
name: request
required: true
schema:
$ref: '#/definitions/dto.RegisterRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/dto.AuthResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/dto.ErrorResponse'
summary: Register a new user
tags:
- auth
/auth/register_enabled:
get:
description: Check if user registration is enabled
responses:
"200":
description: OK
schema:
$ref: '#/definitions/dto.RegisterEnabledResponse'
security:
- BearerAuth: []
summary: Check if registration is enabled
tags:
- auth
/chat/contacts:
get:
consumes:
- application/json
description: Fetch list of contacts from the connected WhatsApp account
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/dto.FetchContactsResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/dto.ErrorResponse'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/dto.ErrorResponse'
security:
- BearerAuth: []
summary: Fetch WhatsApp contacts
tags:
- chat
/chat/send_img:
post:
consumes:
- multipart/form-data
description: Send an image to a WhatsApp number via file upload
parameters:
- description: Image file to send
in: formData
name: image
required: true
type: file
- description: Recipient phone number
example: "628123456789"
in: formData
name: recipient
required: true
type: string
- description: Image caption
in: formData
name: caption
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/dto.SendMessageResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/dto.ErrorResponse'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/dto.ErrorResponse'
security:
- BearerAuth: []
summary: Send WhatsApp image
tags:
- chat
/chat/send_msg:
post:
consumes:
- application/json
description: Send a text message to a WhatsApp number
parameters:
- description: Send Message Request
in: body
name: request
required: true
schema:
$ref: '#/definitions/dto.SendMessageRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/dto.SendMessageResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/dto.ErrorResponse'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/dto.ErrorResponse'
security:
- BearerAuth: []
summary: Send WhatsApp text message
tags:
- chat
/whatsapp/connect:
post:
consumes:
- application/json
description: Initiate a connection request for a new WhatsApp account. Returns
a QR code if not connected.
parameters:
- description: Connect Request
in: body
name: request
required: true
schema:
$ref: '#/definitions/dto.ConnectRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/dto.ConnectResponse'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/dto.ErrorResponse'
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/dto.ErrorResponse'
security:
- BearerAuth: []
summary: Connect new WhatsApp account
tags:
- whatsapp
/whatsapp/socket:
get:
description: Upgrade HTTP connection to WebSocket for real-time updates
responses:
"101":
description: Switching Protocols
security:
- BearerAuth: []
summary: Connect to WebSocket
tags:
- whatsapp
/whatsapp/status:
get:
consumes:
- application/json
description: Get the current status of the WhatsApp connection
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/dto.ConnectionStatusResponse'
"401":
description: Unauthorized
schema:
$ref: '#/definitions/dto.ErrorResponse'
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/dto.ErrorResponse'
security:
- BearerAuth: []
summary: Get WhatsApp connection status
tags:
- whatsapp
securityDefinitions:
BearerAuth:
in: header
name: Authorization
type: apiKey
swagger: "2.0"