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"