Skip to content

Latest commit

 

History

History
291 lines (213 loc) · 4.04 KB

File metadata and controls

291 lines (213 loc) · 4.04 KB

Tickit API Documentation

Authentication

All protected endpoints require a JWT token in the Authorization header:

Authorization: Bearer <your_jwt_token>

User Management

Register User

POST /users/register
Content-Type: application/json

{
    "email": "[email protected]",
    "password": "securepassword",
    "name": "John Doe",
    "username": "johndoe"
}

Login

POST /users/login
Content-Type: application/json

{
    "email": "[email protected]",
    "password": "securepassword"
}

Forgot Password

POST /users/forgot-password
Content-Type: application/json

{
    "email": "[email protected]"
}

Reset Password

POST /users/reset-password/{token}
Content-Type: application/json

{
    "new_password": "newsecurepassword"
}

Get User Profile

GET /users/me
Authorization: Bearer <token>

Update User Profile

PUT /users/me
Authorization: Bearer <token>
Content-Type: application/json

{
    "name": "Updated Name",
    "username": "updatedusername"
}

Change Password

POST /users/change-password
Authorization: Bearer <token>
Content-Type: application/json

{
    "current_password": "currentpassword",
    "new_password": "newpassword"
}

Delete Account

DELETE /users/me
Authorization: Bearer <token>

Projects

List Projects

GET /projects
Authorization: Bearer <token>

Create Project

POST /projects
Authorization: Bearer <token>
Content-Type: application/json

{
    "name": "Project Name",
    "description": "Project Description"
}

Get Project

GET /projects/{id}
Authorization: Bearer <token>

Update Project

PUT /projects/{id}
Authorization: Bearer <token>
Content-Type: application/json

{
    "name": "Updated Project Name",
    "description": "Updated Description"
}

Delete Project

DELETE /projects/{id}
Authorization: Bearer <token>

Tickets

List Tickets

GET /projects/{project_id}/tickets
Authorization: Bearer <token>

Create Ticket

POST /projects/{project_id}/tickets
Authorization: Bearer <token>
Content-Type: application/json

{
    "title": "Ticket Title",
    "description": "Ticket Description",
    "priority": "high",
    "status": "open"
}

Get Ticket

GET /projects/{project_id}/tickets/{id}
Authorization: Bearer <token>

Update Ticket

PUT /projects/{project_id}/tickets/{id}
Authorization: Bearer <token>
Content-Type: application/json

{
    "title": "Updated Title",
    "description": "Updated Description",
    "priority": "medium",
    "status": "in_progress"
}

Delete Ticket

DELETE /projects/{project_id}/tickets/{id}
Authorization: Bearer <token>

Assign Ticket

POST /projects/{project_id}/tickets/{id}/assign
Authorization: Bearer <token>
Content-Type: application/json

{
    "assignee_id": "user-uuid"
}

Comments

List Comments

GET /projects/{project_id}/tickets/{ticket_id}/comments
Authorization: Bearer <token>

Create Comment

POST /projects/{project_id}/tickets/{ticket_id}/comments
Authorization: Bearer <token>
Content-Type: application/json

{
    "content": "Comment content"
}

Update Comment

PUT /projects/{project_id}/tickets/{ticket_id}/comments/{id}
Authorization: Bearer <token>
Content-Type: application/json

{
    "content": "Updated comment content"
}

Delete Comment

DELETE /projects/{project_id}/tickets/{ticket_id}/comments/{id}
Authorization: Bearer <token>

Task Comments

List Task Comments

GET /projects/{project_id}/tasks/{task_id}/comments
Authorization: Bearer <token>

Create Task Comment

POST /projects/{project_id}/tasks/{task_id}/comments
Authorization: Bearer <token>
Content-Type: application/json

{
    "content": "Task comment content"
}

Search

Search Entities

GET /search?q=search_term
Authorization: Bearer <token>

Health Check

Check API Status

GET /health