Teams

Operations around Team management.

Endpoints

POST /api/teams
POST /api/teams/join
POST /api/teams/:teamId
GET /api/teams/:teamId
DELETE /api/teams/:teamId
POST /api/teams/:teamId/users
GET /api/teams/:teamId/users
GET /api/teams/:teamId/users/:userId
POST /api/teams/:teamId/users/:userId
DELETE /api/teams/:teamId/users/:userId
GET /api/teams/:teamId/websites

POST /api/teams

Creates a team.

Parameters

  • name: (string) The team's name.

Request body

{
  "name": "marketing"
}

Sample response

[
  {
    "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "name": "marketing",
    "accessCode": "team_KBmjrm5KcDZSArah",
    "logoUrl": null,
    "createdAt": "0000-00-00T00:00:00.000Z",
    "updatedAt": "0000-00-00T00:00:00.000Z",
    "deletedAt": null
  },
  {
    "id": "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy",
    "teamId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "userId": "zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz",
    "role": "team-owner",
    "createdAt": "0000-00-00T00:00:00.000Z",
    "updatedAt": "0000-00-00T00:00:00.000Z",
  }
]

POST /api/teams/join

Join a team.

Parameters

  • accessCode: (string) The team's access code.

Request body

{
  "accessCode": "xxwtoY8pzKjDIUQi"
}

Sample response

{
    "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "teamId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "userId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "role": "team-member",
    "createdAt": "0000-00-00T00:00:00.000Z",
    "updatedAt": "0000-00-00T00:00:00.000Z"
}

GET /api/teams/:teamId

Get a team.

Sample response

{
  "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "name": "marketing",
  "accessCode": "team_cVQf0mYPriZlPAgK",
  "logoUrl": null,
  "createdAt": "0000-00-00T00:00:00.000Z",
  "updatedAt": "0000-00-00T00:00:00.000Z",
  "deletedAt": null,
  "teamUser": [
    {
      "id": "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy",
      "teamId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "userId": "zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz",
      "role": "team-owner",
      "createdAt": "0000-00-00T00:00:00.000Z",
      "updatedAt": "0000-00-00T00:00:00.000Z"
    }
  ]
}

POST /api/teams/:teamId

Update a team.

Parameters

  • name: (string | optional) The team's name.
  • accessCode: (string | optional) The team's access code.

Request body

{
  "accessCode": "marketing"
}

Sample response

{
    "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "name": "marketing",
    "accessCode": "marketing",
    "logoUrl": null,
    "createdAt": "0000-00-00T00:00:00.000Z",
    "updatedAt": "0000-00-00T00:00:00.000Z",
    "deletedAt": null
}

DELETE /api/teams/:teamId

Delete a team.

Sample response

ok

GET /api/teams/:teamId/users

Get all users that belong to a team.

Parameters

  • query: (string | optional) Search text.
  • page: (number | optional, default 1) Determines page.
  • pageSize: (string | optional) Determines how many results to return.
  • orderBy: (string | optional, default name) Order by column name.

Sample response

{
    "data": [
        {
            "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
            "teamId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
            "userId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
            "role": "team-owner",
            "createdAt": "0000-00-00T00:00:00.000Z",
            "updatedAt": "0000-00-00T00:00:00.000Z",
            "user": {
                "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
                "username": "admin"
            }
        }
    ],
    "count": 1,
    "page": 1,
    "pageSize": 10
}

POST /api/teams/:teamId/users

Add a user to a team.

Parameters

  • userId: ID of user to be added.
  • role: Role for user permission team-member| team-view-only | team-manager.

Request body

{
  "userId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "role": "team-member"
}

Sample response

{
  "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "teamId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "userId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "role": "team-member",
  "createdAt": "0000-00-00T00:00:00.000Z",
  "updatedAt": "0000-00-00T00:00:00.000Z",
}

GET /api/teams/:teamId/users/:userId

Get a user belonging to a team.

Sample response

{
    "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "teamId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "userId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "role": "team-owner",
    "createdAt": "0000-00-00T00:00:00.000Z",
    "updatedAt": "0000-00-00T00:00:00.000Z"
}

POST /api/teams/:teamId/users/:userId

Update a user's role on a team.

Parameters

  • role: Role for user access member | view-only | team-manager.

Request body

{
  "role":"team-member"
}

Sample response

{
    "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "teamId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "userId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "role": "team-member",
    "createdAt": "0000-00-00T00:00:00.000Z",
    "updatedAt": "0000-00-00T00:00:00.000Z"
}

DELETE /api/teams/:teamId/users/:userId

Remove a user from a team.

Sample response

ok

GET /api/teams/:teamId/websites

Get all websites that belong to a team.

Parameters

  • query: (optional string) Search text.
  • page: (optional number, default 1) Determines page.
  • pageSize: (optional string) Determines how many results to return.
  • orderBy: (optional string, default name) Order by column name.

Sample response

{
    "data": [
        {
            "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
            "name": "Example",
            "domain": "example.com",
            "shareId": null,
            "resetAt": null,
            "userId": null,
            "teamId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
            "createdBy": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
            "createdAt": "0000-00-00T00:00:00.000Z",
            "updatedAt": "0000-00-00T00:00:00.000Z",
            "deletedAt": null,
            "createUser": {
                "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
                "username": "user"
            }
        }
    ],
    "count": 1,
    "page": 1,
    "pageSize": 10
}