diff --git a/docs/api/users.md b/docs/api/users.md index 9bfeefc677663cba56ae6a9b3c60302ac45bca1e..3d5755bb58df3ac9a737e0dd4431f3cc6d6358a7 100644 --- a/docs/api/users.md +++ b/docs/api/users.md @@ -1 +1,165 @@ ## Users + +### GET `/user/name/:username` + +Request a users id based on his username. This will return 404 if the user does not exist in the +service. + +#### Response body + +```typescript +interface Body { + status: string; + user: { + id: string; + username: string; + }; +} +``` + +### GET `/user/:uuid/image` + +Get the image avatar for the user with the given uuid. If the user does not exist or the user has +not set a avatar 404 will be returned. The returned image has the `Content-Type` set to `image/png`. + +### GET `/user/` [requires authentication] + +Get information on the user that is authenticated in the request. + +#### Response body + +```typescript +interface Body { + status: string; + user: { + id: string; + username: string; + email: string; + realname: string; + }; +} +``` + +### GET `/user/tasks` [requires authentication] + +Get all the tasks that the authenticated user is assigned to and are not yet finished. + +#### Response body + +```typescript +interface Body { + status: string; + tasks: { + id: string; + project: string; + name: string; + text: string; + icon: string; + priority: string; + status: string; + dependencies: string[]; + requirements: { + role: string; + time: number; + }[]; + assigned: { + user: string; + time: number; + finished: boolean; + }[]; + created: number; + edited: number; + color: string; + }[]; +} +``` + +### GET `/user/work?since=X&to=X` [requires authentication] + +Get all the work items created by the authenticated user. + +#### Response body + +```typescript +interface Body { + status: string; + work: { + id: string; + task: string; + user: string; + started: number; + finished: number; + }[]; +} +``` + +### GET `/user/activity?since=X&to=X` [requires authentication] + +Get the activity for the authenticated user. + +#### Response body + +```typescript +interface Body { + status: string; + activity: { + day: string; + time: number; + }[]; +} +``` + +### GET `/user/completion?since=X&to=X` [requires authentication] + +Get the completion data for all tasks the user is assigned to. + +#### Response body + +```typescript +interface Body { + status: string; + completion: { + open: number; + closed: number; + suspended: number; + overdue: number; + }; +} +``` + +### PUT `/user/` [requires authentication] + +Request an update to the authenticated users information. + +#### Request body + +```typescript +interface Body { + realname?: string; + email?: string; +} +``` + +### PUT `/user/image` [requires authentication] + +Update the image of the authenticated user. The image should be submitted as a file element in a +FormData object called `image`. + +### GET `/user/:uuid` [requires authentication] + +Get information on the user with the given uuid. + +#### Response body + +```typescript +interface Body { + status: string; + user: { + id: string; + username: string; + email: string; + realname: string; + }; +} +``` +