Skip to content

Instantly share code, notes, and snippets.

@ndelitski
Last active August 29, 2015 14:27
Show Gist options
  • Save ndelitski/07a3826cc56851679207 to your computer and use it in GitHub Desktop.
Save ndelitski/07a3826cc56851679207 to your computer and use it in GitHub Desktop.

Tasks

Get task

GET /api/tasks/:id

Get task tree

GET /api/tasks/:id/tree

Response:

{
    "id": 12,
    "name": "Buy milk",
    "subtasks": [
        {
            "id": 15,
            "name": "Feed kittens",
            "subtasks": [...]
        }
        ...
    ]
}

Create a task

POST /api/tasks

{
    "executorId": 12,
    "teamId": 67,
    "name": "Read book",
    "description": "Should be very intersting",
    "dueDate": "[2015-08-11, 14:49:39.000]",
    "tags": [12, 15],
    "observers": [1216, 1732],
    "urgent": true,
    "parentTask": 161,
    "files": [1621, 1613]
}

Change executor

POST /api/tasks/:id/executor

{
    "executorId": 25
}

Change state

POST /api/tasks/:id/state

{
    "state": "Opened"
}

Change due date

POST /api/tasks/:id/due-date

{
    "dueDate": "[2015-08-11, 14:49:39.000]"
}

Change observers

POST /api/tasks/:id/observers

{
    "observers": [25, 1284, 952]
}

Add to favorites

POST /api/tasks/:id/fav

Remove from favorites

POST /api/tasks/:id/unfav

Set task as urgent

POST /api/tasks/:id/urgent

Set task as unurgent

POST /api/tasks/:id/unurgent

Change tags

POST /api/tasks/:id/tags

{
    "tags": [6, 36, 12]
}

Edit name or description

POST /api/tasks/:id/edit

{
    "name": "Budget for marketing 2015",
    "description": "Prepare detailed report"
}

Change parent task ??

POST /api/tasks/:id/parent-task

Board(Kanban)

Get column

GET /api/boards/:board-id/:column-name?{limit},{offset}

Request body

{
    "project": [51, 12],
    "executor": [62],
    "text": "some phrase",
    "creator": [62],
    "observers": [62],
}

Response

{
    "unread": {
        "items": [],
        "total": 12
    },
    "main": {
        "items": [],
        "total": 12
    }
}

Move card

POST /api/boards/:board-id/move-task/:task-id

{
    "from": "inbox",
    "to": "done"
}

Mark as viewed

POST /api/boards/:board-id/view-task/:task-id

Users

Get profile

GET /api/users/:user-id

Update profile

POST /api/users/:user-id

{
    "name":"Marty",
    "surname":"Mc Fly",
    "email":"mary.mc.fly@gmail.com",
    "timezone":"Africa/Bangui",
    "phone": "+7 905 1564556",
    "color":"#AB47BC",
    "lang":"ru"
}

Teams

Get current teams

GET /api/teams

Create a team

POST /api/teams

{
    "name": "Gang of Four",
    "members": [12, "external@user.com", 62, 67],
    "type": "controlled",
    "administrators": [12, 62]
}

Edit team info

POST /api/teams/:team-id/edit

{
    "name": "Gang of Four"
}

Invites

Get current user invites

GET /api/teams/invites

Send invite

POST /api/teams/:team-id/invites/:user-id

{
    "inviteId": "af72409fas234f80hopmsgn",
    "recepient": {
        "id": 123,
        "name": "John",
        "surname": "Snow"
    }
}

Accept invite

POST /api/teams/invites/:invite-id/accept

{
    "teamId": "me|<int:team-id>"
}

Deny invite

POST /api/teams/invites/:invite-id/deny

{
    "reason": "string"
}

Cancel invite

POST /api/teams/invites/:invite-id/deny

Partners ???

Invite partner

POST /api/teams/:team-id/partners/:user-id

Update team user profile

POST /api/teams/update-user-profile/:user-id

{
    "name":"Billy",
    "surname": "Bob",
    "position": "Sales manager",
    "phone": "+7 905 1564556"
}

Contacts

Add contact

Approve contact

Send exchange request

Check if email is SyncCloud user ??

Projects

Get all projects relevant to user with filters

GET /api/projects?{teamId}

Create project

POST /api/projects

{
    "name": "Gang of Four",
    "teamId": 21, // null for personal projects
    "participants": [{"id": 12, "type": "user"}, {"email": "external@user.com"}, {"id": 61, "type": "team"}]
}

Transfer task between projects

POST /api/projects/transfer-task

{
    "taskId": 235,
    "sourceProjectId": 12,
    "destProjectId": 51
}

Project invites

Get currrent user invites to projects

GET /api/projects/invites

{
    "sender": "<User>",
    "senderTeam": "Team name",
    "project": {
        "name": "",
        "description": ""
    }
}

Accept/Deny invite

GET /api/projects/invites/:invite-id/accept|deny

Monitors

Personal messages

Fetch messages

GET /api/monitor/personal-messages

Read message

POST /api/monitor/personal-messages/:msg-id/read

Pin/Unpin message

POST /api/monitor/personal-messages/:msg-id/pin|unpin

Updates ??

POST /api/monitor/personal-messages/:msg-id/updates

Tasks

Tasks list monitor - Receive list of tasks with events

GET /api/monitor/tasks

Projects

Project list monitor

GET /api/monitor/projects

Teams

Teams list monitor

GET /api/monitor/projects

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment