9e39399689
Go mod tidy [skip ci] Add modules/migration to docs [skip ci] update date fmt Merge branch 'master' into feature/migration # Conflicts: # pkg/routes/api/v1/info.go Add docs on how to create a migrator Add available migrators to /info endpoint Return a message once everything was migrated successfully Add swagger docs for wunderlist migration Docs for migration [skip ci] Fix due date fixture in migration test Fix staticcheck Fix lint Logging and cleanup Make the migrator work with real data Add routes for migration Fix misspell Add method to store a full vikunja structure into vikunja Add getting all data from wunderlist Add attachment migration from wunderlist Add done and done at to wunderlist migrator Add todo Add wunderlist auth url implementation Fix lint Finish wunderlist migration Added all structs for the wunderlist migratior Fix owner field being null for user shared namespaces (#119) Update copyright year (#118) Add option to disable registration (#117) Added migrator interface Co-authored-by: kolaente <k@knt.li> Reviewed-on: https://kolaente.dev/vikunja/api/pulls/120
3880 lines
111 KiB
YAML
3880 lines
111 KiB
YAML
basePath: /api/v1
|
|
definitions:
|
|
files.File:
|
|
properties:
|
|
created:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
mime:
|
|
type: string
|
|
name:
|
|
type: string
|
|
size:
|
|
type: integer
|
|
type: object
|
|
handler.AuthURL:
|
|
properties:
|
|
url:
|
|
type: string
|
|
type: object
|
|
models.APIUserPassword:
|
|
properties:
|
|
email:
|
|
description: The user's email address
|
|
maxLength: 250
|
|
type: string
|
|
id:
|
|
description: The unique, numeric id of this user.
|
|
type: integer
|
|
password:
|
|
description: The user's password in clear text. Only used when registering
|
|
the user.
|
|
maxLength: 250
|
|
minLength: 8
|
|
type: string
|
|
username:
|
|
description: The username of the username. Is always unique.
|
|
maxLength: 250
|
|
minLength: 3
|
|
type: string
|
|
type: object
|
|
models.BulkAssignees:
|
|
properties:
|
|
assignees:
|
|
description: A list with all assignees
|
|
items:
|
|
$ref: '#/definitions/models.User'
|
|
type: array
|
|
type: object
|
|
models.BulkTask:
|
|
properties:
|
|
assignees:
|
|
description: An array of users who are assigned to this task
|
|
items:
|
|
$ref: '#/definitions/models.User'
|
|
type: array
|
|
attachments:
|
|
description: All attachments this task has
|
|
items:
|
|
$ref: '#/definitions/models.TaskAttachment'
|
|
type: array
|
|
created:
|
|
description: A unix timestamp when this task was created. You cannot change
|
|
this value.
|
|
type: integer
|
|
createdBy:
|
|
$ref: '#/definitions/models.User'
|
|
description: The user who initially created the task.
|
|
type: object
|
|
description:
|
|
description: The task description.
|
|
type: string
|
|
done:
|
|
description: Whether a task is done or not.
|
|
type: boolean
|
|
doneAt:
|
|
description: The unix timestamp when a task was marked as done.
|
|
type: integer
|
|
dueDate:
|
|
description: A unix timestamp when the task is due.
|
|
type: integer
|
|
endDate:
|
|
description: When this task ends.
|
|
type: integer
|
|
hexColor:
|
|
description: The task color in hex
|
|
maxLength: 6
|
|
type: string
|
|
id:
|
|
description: The unique, numeric id of this task.
|
|
type: integer
|
|
identifier:
|
|
description: The task identifier, based on the list identifier and the task's
|
|
index
|
|
type: string
|
|
index:
|
|
description: The task index, calculated per list
|
|
type: integer
|
|
labels:
|
|
description: An array of labels which are associated with this task.
|
|
items:
|
|
$ref: '#/definitions/models.Label'
|
|
type: array
|
|
listID:
|
|
description: The list this task belongs to.
|
|
type: integer
|
|
percentDone:
|
|
description: Determines how far a task is left from being done
|
|
type: number
|
|
priority:
|
|
description: The task priority. Can be anything you want, it is possible to
|
|
sort by this later.
|
|
type: integer
|
|
related_tasks:
|
|
$ref: '#/definitions/models.RelatedTaskMap'
|
|
description: All related tasks, grouped by their relation kind
|
|
type: object
|
|
reminderDates:
|
|
description: An array of unix timestamps when the user wants to be reminded
|
|
of the task.
|
|
items:
|
|
type: integer
|
|
type: array
|
|
repeatAfter:
|
|
description: An amount in seconds this task repeats itself. If this is set,
|
|
when marking the task as done, it will mark itself as "undone" and then
|
|
increase all remindes and the due date by its amount.
|
|
type: integer
|
|
startDate:
|
|
description: When this task starts.
|
|
type: integer
|
|
task_ids:
|
|
description: A list of task ids to update
|
|
items:
|
|
type: integer
|
|
type: array
|
|
text:
|
|
description: The task text. This is what you'll see in the list.
|
|
maxLength: 250
|
|
minLength: 3
|
|
type: string
|
|
updated:
|
|
description: A unix timestamp when this task was last updated. You cannot
|
|
change this value.
|
|
type: integer
|
|
type: object
|
|
models.EmailConfirm:
|
|
properties:
|
|
token:
|
|
description: The email confirm token sent via email.
|
|
type: string
|
|
type: object
|
|
models.Label:
|
|
properties:
|
|
created:
|
|
description: A unix timestamp when this label was created. You cannot change
|
|
this value.
|
|
type: integer
|
|
created_by:
|
|
$ref: '#/definitions/models.User'
|
|
description: The user who created this label
|
|
type: object
|
|
description:
|
|
description: The label description.
|
|
type: string
|
|
hex_color:
|
|
description: The color this label has
|
|
maxLength: 6
|
|
type: string
|
|
id:
|
|
description: The unique, numeric id of this label.
|
|
type: integer
|
|
title:
|
|
description: The title of the lable. You'll see this one on tasks associated
|
|
with it.
|
|
maxLength: 250
|
|
minLength: 3
|
|
type: string
|
|
updated:
|
|
description: A unix timestamp when this label was last updated. You cannot
|
|
change this value.
|
|
type: integer
|
|
type: object
|
|
models.LabelTask:
|
|
properties:
|
|
created:
|
|
description: A unix timestamp when this task was created. You cannot change
|
|
this value.
|
|
type: integer
|
|
label_id:
|
|
description: The label id you want to associate with a task.
|
|
type: integer
|
|
type: object
|
|
models.LabelTaskBulk:
|
|
properties:
|
|
labels:
|
|
description: All labels you want to update at once.
|
|
items:
|
|
$ref: '#/definitions/models.Label'
|
|
type: array
|
|
type: object
|
|
models.LinkSharing:
|
|
properties:
|
|
created:
|
|
description: A unix timestamp when this list was shared. You cannot change
|
|
this value.
|
|
type: integer
|
|
hash:
|
|
description: The public id to get this shared list
|
|
type: string
|
|
id:
|
|
description: The ID of the shared thing
|
|
type: integer
|
|
right:
|
|
default: 0
|
|
description: The right this list is shared with. 0 = Read only, 1 = Read &
|
|
Write, 2 = Admin. See the docs for more details.
|
|
maximum: 2
|
|
type: integer
|
|
shared_by:
|
|
$ref: '#/definitions/models.User'
|
|
description: The user who shared this list
|
|
type: object
|
|
sharing_type:
|
|
default: 0
|
|
description: The kind of this link. 0 = undefined, 1 = without password, 2
|
|
= with password (currently not implemented).
|
|
maximum: 2
|
|
type: integer
|
|
updated:
|
|
description: A unix timestamp when this share was last updated. You cannot
|
|
change this value.
|
|
type: integer
|
|
type: object
|
|
models.List:
|
|
properties:
|
|
created:
|
|
description: A unix timestamp when this list was created. You cannot change
|
|
this value.
|
|
type: integer
|
|
description:
|
|
description: The description of the list.
|
|
type: string
|
|
id:
|
|
description: The unique, numeric id of this list.
|
|
type: integer
|
|
identifier:
|
|
description: The unique list short identifier. Used to build task identifiers.
|
|
maxLength: 10
|
|
minLength: 0
|
|
type: string
|
|
owner:
|
|
$ref: '#/definitions/models.User'
|
|
description: The user who created this list.
|
|
type: object
|
|
title:
|
|
description: The title of the list. You'll see this in the namespace overview.
|
|
maxLength: 250
|
|
minLength: 3
|
|
type: string
|
|
updated:
|
|
description: A unix timestamp when this list was last updated. You cannot
|
|
change this value.
|
|
type: integer
|
|
type: object
|
|
models.ListUser:
|
|
properties:
|
|
created:
|
|
description: A unix timestamp when this relation was created. You cannot change
|
|
this value.
|
|
type: integer
|
|
id:
|
|
description: The unique, numeric id of this list <-> user relation.
|
|
type: integer
|
|
right:
|
|
default: 0
|
|
description: The right this user has. 0 = Read only, 1 = Read & Write, 2 =
|
|
Admin. See the docs for more details.
|
|
maximum: 2
|
|
type: integer
|
|
updated:
|
|
description: A unix timestamp when this relation was last updated. You cannot
|
|
change this value.
|
|
type: integer
|
|
userID:
|
|
description: The username.
|
|
type: string
|
|
type: object
|
|
models.Message:
|
|
properties:
|
|
message:
|
|
description: A standard message.
|
|
type: string
|
|
type: object
|
|
models.Namespace:
|
|
properties:
|
|
created:
|
|
description: A unix timestamp when this namespace was created. You cannot
|
|
change this value.
|
|
type: integer
|
|
description:
|
|
description: The description of the namespace
|
|
type: string
|
|
id:
|
|
description: The unique, numeric id of this namespace.
|
|
type: integer
|
|
name:
|
|
description: The name of this namespace.
|
|
maxLength: 250
|
|
minLength: 5
|
|
type: string
|
|
owner:
|
|
$ref: '#/definitions/models.User'
|
|
description: The user who owns this namespace
|
|
type: object
|
|
updated:
|
|
description: A unix timestamp when this namespace was last updated. You cannot
|
|
change this value.
|
|
type: integer
|
|
type: object
|
|
models.NamespaceUser:
|
|
properties:
|
|
created:
|
|
description: A unix timestamp when this relation was created. You cannot change
|
|
this value.
|
|
type: integer
|
|
id:
|
|
description: The unique, numeric id of this namespace <-> user relation.
|
|
type: integer
|
|
right:
|
|
default: 0
|
|
description: The right this user has. 0 = Read only, 1 = Read & Write, 2 =
|
|
Admin. See the docs for more details.
|
|
maximum: 2
|
|
type: integer
|
|
updated:
|
|
description: A unix timestamp when this relation was last updated. You cannot
|
|
change this value.
|
|
type: integer
|
|
userID:
|
|
description: The username.
|
|
type: string
|
|
type: object
|
|
models.NamespaceWithLists:
|
|
properties:
|
|
created:
|
|
description: A unix timestamp when this namespace was created. You cannot
|
|
change this value.
|
|
type: integer
|
|
description:
|
|
description: The description of the namespace
|
|
type: string
|
|
id:
|
|
description: The unique, numeric id of this namespace.
|
|
type: integer
|
|
lists:
|
|
items:
|
|
$ref: '#/definitions/models.List'
|
|
type: array
|
|
name:
|
|
description: The name of this namespace.
|
|
maxLength: 250
|
|
minLength: 5
|
|
type: string
|
|
owner:
|
|
$ref: '#/definitions/models.User'
|
|
description: The user who owns this namespace
|
|
type: object
|
|
updated:
|
|
description: A unix timestamp when this namespace was last updated. You cannot
|
|
change this value.
|
|
type: integer
|
|
type: object
|
|
models.PasswordReset:
|
|
properties:
|
|
new_password:
|
|
description: The new password for this user.
|
|
type: string
|
|
token:
|
|
description: The previously issued reset token.
|
|
type: string
|
|
type: object
|
|
models.PasswordTokenRequest:
|
|
properties:
|
|
email:
|
|
maxLength: 250
|
|
type: string
|
|
type: object
|
|
models.RelatedTaskMap:
|
|
additionalProperties:
|
|
items:
|
|
properties:
|
|
assignees:
|
|
description: An array of users who are assigned to this task
|
|
items:
|
|
$ref: '#/definitions/models.User'
|
|
type: array
|
|
attachments:
|
|
description: All attachments this task has
|
|
items:
|
|
$ref: '#/definitions/models.TaskAttachment'
|
|
type: array
|
|
created:
|
|
description: A unix timestamp when this task was created. You cannot change
|
|
this value.
|
|
type: integer
|
|
createdBy:
|
|
$ref: '#/definitions/models.User'
|
|
description: The user who initially created the task.
|
|
type: object
|
|
description:
|
|
description: The task description.
|
|
type: string
|
|
done:
|
|
description: Whether a task is done or not.
|
|
type: boolean
|
|
doneAt:
|
|
description: The unix timestamp when a task was marked as done.
|
|
type: integer
|
|
dueDate:
|
|
description: A unix timestamp when the task is due.
|
|
type: integer
|
|
endDate:
|
|
description: When this task ends.
|
|
type: integer
|
|
hexColor:
|
|
description: The task color in hex
|
|
maxLength: 6
|
|
type: string
|
|
id:
|
|
description: The unique, numeric id of this task.
|
|
type: integer
|
|
identifier:
|
|
description: The task identifier, based on the list identifier and the
|
|
task's index
|
|
type: string
|
|
index:
|
|
description: The task index, calculated per list
|
|
type: integer
|
|
labels:
|
|
description: An array of labels which are associated with this task.
|
|
items:
|
|
$ref: '#/definitions/models.Label'
|
|
type: array
|
|
listID:
|
|
description: The list this task belongs to.
|
|
type: integer
|
|
percentDone:
|
|
description: Determines how far a task is left from being done
|
|
type: number
|
|
priority:
|
|
description: The task priority. Can be anything you want, it is possible
|
|
to sort by this later.
|
|
type: integer
|
|
related_tasks:
|
|
$ref: '#/definitions/models.RelatedTaskMap'
|
|
description: All related tasks, grouped by their relation kind
|
|
type: object
|
|
reminderDates:
|
|
description: An array of unix timestamps when the user wants to be reminded
|
|
of the task.
|
|
items:
|
|
type: integer
|
|
type: array
|
|
repeatAfter:
|
|
description: An amount in seconds this task repeats itself. If this is
|
|
set, when marking the task as done, it will mark itself as "undone"
|
|
and then increase all remindes and the due date by its amount.
|
|
type: integer
|
|
startDate:
|
|
description: When this task starts.
|
|
type: integer
|
|
text:
|
|
description: The task text. This is what you'll see in the list.
|
|
maxLength: 250
|
|
minLength: 3
|
|
type: string
|
|
updated:
|
|
description: A unix timestamp when this task was last updated. You cannot
|
|
change this value.
|
|
type: integer
|
|
type: object
|
|
type: array
|
|
type: object
|
|
models.Task:
|
|
properties:
|
|
assignees:
|
|
description: An array of users who are assigned to this task
|
|
items:
|
|
$ref: '#/definitions/models.User'
|
|
type: array
|
|
attachments:
|
|
description: All attachments this task has
|
|
items:
|
|
$ref: '#/definitions/models.TaskAttachment'
|
|
type: array
|
|
created:
|
|
description: A unix timestamp when this task was created. You cannot change
|
|
this value.
|
|
type: integer
|
|
createdBy:
|
|
$ref: '#/definitions/models.User'
|
|
description: The user who initially created the task.
|
|
type: object
|
|
description:
|
|
description: The task description.
|
|
type: string
|
|
done:
|
|
description: Whether a task is done or not.
|
|
type: boolean
|
|
doneAt:
|
|
description: The unix timestamp when a task was marked as done.
|
|
type: integer
|
|
dueDate:
|
|
description: A unix timestamp when the task is due.
|
|
type: integer
|
|
endDate:
|
|
description: When this task ends.
|
|
type: integer
|
|
hexColor:
|
|
description: The task color in hex
|
|
maxLength: 6
|
|
type: string
|
|
id:
|
|
description: The unique, numeric id of this task.
|
|
type: integer
|
|
identifier:
|
|
description: The task identifier, based on the list identifier and the task's
|
|
index
|
|
type: string
|
|
index:
|
|
description: The task index, calculated per list
|
|
type: integer
|
|
labels:
|
|
description: An array of labels which are associated with this task.
|
|
items:
|
|
$ref: '#/definitions/models.Label'
|
|
type: array
|
|
listID:
|
|
description: The list this task belongs to.
|
|
type: integer
|
|
percentDone:
|
|
description: Determines how far a task is left from being done
|
|
type: number
|
|
priority:
|
|
description: The task priority. Can be anything you want, it is possible to
|
|
sort by this later.
|
|
type: integer
|
|
related_tasks:
|
|
$ref: '#/definitions/models.RelatedTaskMap'
|
|
description: All related tasks, grouped by their relation kind
|
|
type: object
|
|
reminderDates:
|
|
description: An array of unix timestamps when the user wants to be reminded
|
|
of the task.
|
|
items:
|
|
type: integer
|
|
type: array
|
|
repeatAfter:
|
|
description: An amount in seconds this task repeats itself. If this is set,
|
|
when marking the task as done, it will mark itself as "undone" and then
|
|
increase all remindes and the due date by its amount.
|
|
type: integer
|
|
startDate:
|
|
description: When this task starts.
|
|
type: integer
|
|
text:
|
|
description: The task text. This is what you'll see in the list.
|
|
maxLength: 250
|
|
minLength: 3
|
|
type: string
|
|
updated:
|
|
description: A unix timestamp when this task was last updated. You cannot
|
|
change this value.
|
|
type: integer
|
|
type: object
|
|
models.TaskAssginee:
|
|
properties:
|
|
created:
|
|
type: integer
|
|
user_id:
|
|
type: integer
|
|
type: object
|
|
models.TaskAttachment:
|
|
properties:
|
|
created:
|
|
type: integer
|
|
created_by:
|
|
$ref: '#/definitions/models.User'
|
|
type: object
|
|
file:
|
|
$ref: '#/definitions/files.File'
|
|
type: object
|
|
id:
|
|
type: integer
|
|
task_id:
|
|
type: integer
|
|
type: object
|
|
models.TaskRelation:
|
|
properties:
|
|
created:
|
|
description: A unix timestamp when this label was created. You cannot change
|
|
this value.
|
|
type: integer
|
|
created_by:
|
|
$ref: '#/definitions/models.User'
|
|
description: The user who created this relation
|
|
type: object
|
|
other_task_id:
|
|
description: The ID of the other task, the task which is being related.
|
|
type: integer
|
|
relation_kind:
|
|
description: The kind of the relation.
|
|
type: string
|
|
task_id:
|
|
description: The ID of the "base" task, the task which has a relation to another.
|
|
type: integer
|
|
type: object
|
|
models.Team:
|
|
properties:
|
|
created:
|
|
description: A unix timestamp when this relation was created. You cannot change
|
|
this value.
|
|
type: integer
|
|
createdBy:
|
|
$ref: '#/definitions/models.User'
|
|
description: The user who created this team.
|
|
type: object
|
|
description:
|
|
description: The team's description.
|
|
type: string
|
|
id:
|
|
description: The unique, numeric id of this team.
|
|
type: integer
|
|
members:
|
|
description: An array of all members in this team.
|
|
items:
|
|
$ref: '#/definitions/models.TeamUser'
|
|
type: array
|
|
name:
|
|
description: The name of this team.
|
|
maxLength: 250
|
|
minLength: 5
|
|
type: string
|
|
updated:
|
|
description: A unix timestamp when this relation was last updated. You cannot
|
|
change this value.
|
|
type: integer
|
|
type: object
|
|
models.TeamList:
|
|
properties:
|
|
created:
|
|
description: A unix timestamp when this relation was created. You cannot change
|
|
this value.
|
|
type: integer
|
|
id:
|
|
description: The unique, numeric id of this list <-> team relation.
|
|
type: integer
|
|
right:
|
|
default: 0
|
|
description: The right this team has. 0 = Read only, 1 = Read & Write, 2 =
|
|
Admin. See the docs for more details.
|
|
maximum: 2
|
|
type: integer
|
|
teamID:
|
|
description: The team id.
|
|
type: integer
|
|
updated:
|
|
description: A unix timestamp when this relation was last updated. You cannot
|
|
change this value.
|
|
type: integer
|
|
type: object
|
|
models.TeamMember:
|
|
properties:
|
|
admin:
|
|
description: Whether or not the member is an admin of the team. See the docs
|
|
for more about what a team admin can do
|
|
type: boolean
|
|
created:
|
|
description: A unix timestamp when this relation was created. You cannot change
|
|
this value.
|
|
type: integer
|
|
id:
|
|
description: The unique, numeric id of this team member relation.
|
|
type: integer
|
|
username:
|
|
description: The username of the member. We use this to prevent automated
|
|
user id entering.
|
|
type: string
|
|
type: object
|
|
models.TeamNamespace:
|
|
properties:
|
|
created:
|
|
description: A unix timestamp when this relation was created. You cannot change
|
|
this value.
|
|
type: integer
|
|
id:
|
|
description: The unique, numeric id of this namespace <-> team relation.
|
|
type: integer
|
|
right:
|
|
default: 0
|
|
description: The right this team has. 0 = Read only, 1 = Read & Write, 2 =
|
|
Admin. See the docs for more details.
|
|
maximum: 2
|
|
type: integer
|
|
teamID:
|
|
description: The team id.
|
|
type: integer
|
|
updated:
|
|
description: A unix timestamp when this relation was last updated. You cannot
|
|
change this value.
|
|
type: integer
|
|
type: object
|
|
models.TeamUser:
|
|
properties:
|
|
admin:
|
|
description: Whether or not the member is an admin of the team. See the docs
|
|
for more about what a team admin can do
|
|
type: boolean
|
|
avatarUrl:
|
|
description: The users md5-hashed email address, used to get the avatar from
|
|
gravatar and the likes.
|
|
type: string
|
|
created:
|
|
description: A unix timestamp when this task was created. You cannot change
|
|
this value.
|
|
type: integer
|
|
email:
|
|
description: The user's email address.
|
|
maxLength: 250
|
|
type: string
|
|
id:
|
|
description: The unique, numeric id of this user.
|
|
type: integer
|
|
updated:
|
|
description: A unix timestamp when this task was last updated. You cannot
|
|
change this value.
|
|
type: integer
|
|
username:
|
|
description: The username of the user. Is always unique.
|
|
maxLength: 250
|
|
minLength: 3
|
|
type: string
|
|
type: object
|
|
models.TeamWithRight:
|
|
properties:
|
|
created:
|
|
description: A unix timestamp when this relation was created. You cannot change
|
|
this value.
|
|
type: integer
|
|
createdBy:
|
|
$ref: '#/definitions/models.User'
|
|
description: The user who created this team.
|
|
type: object
|
|
description:
|
|
description: The team's description.
|
|
type: string
|
|
id:
|
|
description: The unique, numeric id of this team.
|
|
type: integer
|
|
members:
|
|
description: An array of all members in this team.
|
|
items:
|
|
$ref: '#/definitions/models.TeamUser'
|
|
type: array
|
|
name:
|
|
description: The name of this team.
|
|
maxLength: 250
|
|
minLength: 5
|
|
type: string
|
|
right:
|
|
type: integer
|
|
updated:
|
|
description: A unix timestamp when this relation was last updated. You cannot
|
|
change this value.
|
|
type: integer
|
|
type: object
|
|
models.User:
|
|
properties:
|
|
avatarUrl:
|
|
description: The users md5-hashed email address, used to get the avatar from
|
|
gravatar and the likes.
|
|
type: string
|
|
created:
|
|
description: A unix timestamp when this task was created. You cannot change
|
|
this value.
|
|
type: integer
|
|
email:
|
|
description: The user's email address.
|
|
maxLength: 250
|
|
type: string
|
|
id:
|
|
description: The unique, numeric id of this user.
|
|
type: integer
|
|
updated:
|
|
description: A unix timestamp when this task was last updated. You cannot
|
|
change this value.
|
|
type: integer
|
|
username:
|
|
description: The username of the user. Is always unique.
|
|
maxLength: 250
|
|
minLength: 3
|
|
type: string
|
|
type: object
|
|
models.UserLogin:
|
|
properties:
|
|
password:
|
|
description: The password for the user.
|
|
type: string
|
|
username:
|
|
description: The username used to log in.
|
|
type: string
|
|
type: object
|
|
models.UserWithRight:
|
|
properties:
|
|
avatarUrl:
|
|
description: The users md5-hashed email address, used to get the avatar from
|
|
gravatar and the likes.
|
|
type: string
|
|
created:
|
|
description: A unix timestamp when this task was created. You cannot change
|
|
this value.
|
|
type: integer
|
|
email:
|
|
description: The user's email address.
|
|
maxLength: 250
|
|
type: string
|
|
id:
|
|
description: The unique, numeric id of this user.
|
|
type: integer
|
|
right:
|
|
type: integer
|
|
updated:
|
|
description: A unix timestamp when this task was last updated. You cannot
|
|
change this value.
|
|
type: integer
|
|
username:
|
|
description: The username of the user. Is always unique.
|
|
maxLength: 250
|
|
minLength: 3
|
|
type: string
|
|
type: object
|
|
v1.Token:
|
|
properties:
|
|
token:
|
|
type: string
|
|
type: object
|
|
v1.UserPassword:
|
|
properties:
|
|
new_password:
|
|
type: string
|
|
old_password:
|
|
type: string
|
|
type: object
|
|
v1.vikunjaInfos:
|
|
properties:
|
|
frontend_url:
|
|
type: string
|
|
link_sharing_enabled:
|
|
type: boolean
|
|
max_file_size:
|
|
type: string
|
|
motd:
|
|
type: string
|
|
version:
|
|
type: string
|
|
type: object
|
|
wunderlist.Migration:
|
|
properties:
|
|
code:
|
|
description: Code is the code used to get a user api token
|
|
type: string
|
|
type: object
|
|
info:
|
|
contact:
|
|
email: hello@vikunja.io
|
|
name: General Vikunja contact
|
|
url: http://vikunja.io/en/contact/
|
|
description: |-
|
|
# Pagination
|
|
Every endpoint capable of pagination will return two headers:
|
|
* `x-pagination-total-pages`: The total number of available pages for this request
|
|
* `x-pagination-result-count`: The number of items returned for this request.
|
|
# Authorization
|
|
**JWT-Auth:** Main authorization method, used for most of the requests. Needs `Authorization: Bearer <jwt-token>`-header to authenticate successfully.
|
|
|
|
**BasicAuth:** Only used when requesting tasks via caldav.
|
|
<!-- ReDoc-Inject: <security-definitions> -->
|
|
license:
|
|
name: GPLv3
|
|
url: http://code.vikunja.io/api/src/branch/master/LICENSE
|
|
title: Vikunja API
|
|
paths:
|
|
/info:
|
|
get:
|
|
description: Returns the version, frontendurl, motd and various settings of
|
|
Vikunja
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/v1.vikunjaInfos'
|
|
summary: Info
|
|
tags:
|
|
- service
|
|
/labels:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Returns all labels which are either created by the user or associated
|
|
with a task the user has at least read-access to.
|
|
parameters:
|
|
- description: The page number. Used for pagination. If not provided, the first
|
|
page of results is returned.
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: The maximum number of items per page. Note this parameter is
|
|
limited by the configured maximum of items per page.
|
|
in: query
|
|
name: per_page
|
|
type: integer
|
|
- description: Search labels by label text.
|
|
in: query
|
|
name: s
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The labels
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.Label'
|
|
type: array
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Get all labels a user has access to
|
|
tags:
|
|
- labels
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Creates a new label.
|
|
parameters:
|
|
- description: The label object
|
|
in: body
|
|
name: label
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.Label'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The created label object.
|
|
schema:
|
|
$ref: '#/definitions/models.Label'
|
|
"400":
|
|
description: Invalid label object provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Create a label
|
|
tags:
|
|
- labels
|
|
/labels/{id}:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
description: Delete an existing label. The user needs to be the creator of the
|
|
label to be able to do this.
|
|
parameters:
|
|
- description: Label ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The label was successfully deleted.
|
|
schema:
|
|
$ref: '#/definitions/models.Label'
|
|
"403":
|
|
description: Not allowed to delete the label.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"404":
|
|
description: Label not found.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Delete a label
|
|
tags:
|
|
- labels
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Returns one label by its ID.
|
|
parameters:
|
|
- description: Label ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The label
|
|
schema:
|
|
$ref: '#/definitions/models.Label'
|
|
"403":
|
|
description: The user does not have access to the label
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"404":
|
|
description: Label not found
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Gets one label
|
|
tags:
|
|
- labels
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Update an existing label. The user needs to be the creator of the
|
|
label to be able to do this.
|
|
parameters:
|
|
- description: Label ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: The label object
|
|
in: body
|
|
name: label
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.Label'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The created label object.
|
|
schema:
|
|
$ref: '#/definitions/models.Label'
|
|
"400":
|
|
description: Invalid label object provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"403":
|
|
description: Not allowed to update the label.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"404":
|
|
description: Label not found.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Update a label
|
|
tags:
|
|
- labels
|
|
/lists:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Returns all lists a user has access to.
|
|
parameters:
|
|
- description: The page number. Used for pagination. If not provided, the first
|
|
page of results is returned.
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: The maximum number of items per page. Note this parameter is
|
|
limited by the configured maximum of items per page.
|
|
in: query
|
|
name: per_page
|
|
type: integer
|
|
- description: Search lists by title.
|
|
in: query
|
|
name: s
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The lists
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.List'
|
|
type: array
|
|
"403":
|
|
description: The user does not have access to the list
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Get all lists a user has access to
|
|
tags:
|
|
- list
|
|
/lists/{id}:
|
|
delete:
|
|
description: Delets a list
|
|
parameters:
|
|
- description: List ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The list was successfully deleted.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
"400":
|
|
description: Invalid list object provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"403":
|
|
description: The user does not have access to the list
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Deletes a list
|
|
tags:
|
|
- list
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Returns a list by its ID.
|
|
parameters:
|
|
- description: List ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The list
|
|
schema:
|
|
$ref: '#/definitions/models.List'
|
|
"403":
|
|
description: The user does not have access to the list
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Gets one list
|
|
tags:
|
|
- list
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Updates a list. This does not include adding a task (see below).
|
|
parameters:
|
|
- description: List ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: The list with updated values you want to update.
|
|
in: body
|
|
name: list
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.List'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The updated list.
|
|
schema:
|
|
$ref: '#/definitions/models.List'
|
|
"400":
|
|
description: Invalid list object provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"403":
|
|
description: The user does not have access to the list
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Updates a list
|
|
tags:
|
|
- list
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Inserts a task into a list.
|
|
parameters:
|
|
- description: List ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: The task object
|
|
in: body
|
|
name: task
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.Task'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The created task object.
|
|
schema:
|
|
$ref: '#/definitions/models.Task'
|
|
"400":
|
|
description: Invalid task object provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"403":
|
|
description: The user does not have access to the list
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Create a task
|
|
tags:
|
|
- task
|
|
/lists/{id}/listusers:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Lists all users (without emailadresses). Also possible to search
|
|
for a specific user.
|
|
parameters:
|
|
- description: Search for a user by its name.
|
|
in: query
|
|
name: s
|
|
type: string
|
|
- description: List ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: All (found) users.
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.User'
|
|
type: array
|
|
"400":
|
|
description: Something's invalid.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"401":
|
|
description: The user does not have the right to see the list.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal server error.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Get users
|
|
tags:
|
|
- list
|
|
/lists/{id}/teams:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Returns a list with all teams which have access on a given list.
|
|
parameters:
|
|
- description: List ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: The page number. Used for pagination. If not provided, the first
|
|
page of results is returned.
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: The maximum number of items per page. Note this parameter is
|
|
limited by the configured maximum of items per page.
|
|
in: query
|
|
name: per_page
|
|
type: integer
|
|
- description: Search teams by its name.
|
|
in: query
|
|
name: s
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The teams with their right.
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.TeamWithRight'
|
|
type: array
|
|
"403":
|
|
description: No right to see the list.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Get teams on a list
|
|
tags:
|
|
- sharing
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Gives a team access to a list.
|
|
parameters:
|
|
- description: List ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: The team you want to add to the list.
|
|
in: body
|
|
name: list
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.TeamList'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The created team<->list relation.
|
|
schema:
|
|
$ref: '#/definitions/models.TeamList'
|
|
"400":
|
|
description: Invalid team list object provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"403":
|
|
description: The user does not have access to the list
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"404":
|
|
description: The team does not exist.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Add a team to a list
|
|
tags:
|
|
- sharing
|
|
/lists/{id}/users:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Returns a list with all users which have access on a given list.
|
|
parameters:
|
|
- description: List ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: The page number. Used for pagination. If not provided, the first
|
|
page of results is returned.
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: The maximum number of items per page. Note this parameter is
|
|
limited by the configured maximum of items per page.
|
|
in: query
|
|
name: per_page
|
|
type: integer
|
|
- description: Search users by its name.
|
|
in: query
|
|
name: s
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The users with the right they have.
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.UserWithRight'
|
|
type: array
|
|
"403":
|
|
description: No right to see the list.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Get users on a list
|
|
tags:
|
|
- sharing
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Gives a user access to a list.
|
|
parameters:
|
|
- description: List ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: The user you want to add to the list.
|
|
in: body
|
|
name: list
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.ListUser'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The created user<->list relation.
|
|
schema:
|
|
$ref: '#/definitions/models.ListUser'
|
|
"400":
|
|
description: Invalid user list object provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"403":
|
|
description: The user does not have access to the list
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"404":
|
|
description: The user does not exist.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Add a user to a list
|
|
tags:
|
|
- sharing
|
|
/lists/{list}/shares:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Returns all link shares which exist for a given list
|
|
parameters:
|
|
- description: List ID
|
|
in: path
|
|
name: list
|
|
required: true
|
|
type: integer
|
|
- description: The page number. Used for pagination. If not provided, the first
|
|
page of results is returned.
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: The maximum number of items per page. Note this parameter is
|
|
limited by the configured maximum of items per page.
|
|
in: query
|
|
name: per_page
|
|
type: integer
|
|
- description: Search shares by hash.
|
|
in: query
|
|
name: s
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The share links
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.LinkSharing'
|
|
type: array
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Get all link shares for a list
|
|
tags:
|
|
- sharing
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Share a list via link. The user needs to have write-access to the
|
|
list to be able do this.
|
|
parameters:
|
|
- description: List ID
|
|
in: path
|
|
name: list
|
|
required: true
|
|
type: integer
|
|
- description: The new link share object
|
|
in: body
|
|
name: label
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.LinkSharing'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The created link share object.
|
|
schema:
|
|
$ref: '#/definitions/models.LinkSharing'
|
|
"400":
|
|
description: Invalid link share object provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"403":
|
|
description: Not allowed to add the list share.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"404":
|
|
description: The list does not exist.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Share a list via link
|
|
tags:
|
|
- sharing
|
|
/lists/{list}/shares/{share}:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
description: Remove a link share. The user needs to have write-access to the
|
|
list to be able do this.
|
|
parameters:
|
|
- description: List ID
|
|
in: path
|
|
name: list
|
|
required: true
|
|
type: integer
|
|
- description: Share Link ID
|
|
in: path
|
|
name: share
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The link was successfully removed.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
"403":
|
|
description: Not allowed to remove the link.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"404":
|
|
description: Share Link not found.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Remove a link share
|
|
tags:
|
|
- sharing
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Returns one link share by its ID.
|
|
parameters:
|
|
- description: List ID
|
|
in: path
|
|
name: list
|
|
required: true
|
|
type: integer
|
|
- description: Share ID
|
|
in: path
|
|
name: share
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The share links
|
|
schema:
|
|
$ref: '#/definitions/models.LinkSharing'
|
|
"403":
|
|
description: No access to the list
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"404":
|
|
description: Share Link not found.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Get one link shares for a list
|
|
tags:
|
|
- sharing
|
|
/lists/{listID}/tasks:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Returns all tasks for the current list.
|
|
parameters:
|
|
- description: The list ID.
|
|
in: path
|
|
name: listID
|
|
required: true
|
|
type: integer
|
|
- description: The page number. Used for pagination. If not provided, the first
|
|
page of results is returned.
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: The maximum number of items per page. Note this parameter is
|
|
limited by the configured maximum of items per page.
|
|
in: query
|
|
name: per_page
|
|
type: integer
|
|
- description: Search tasks by task text.
|
|
in: query
|
|
name: s
|
|
type: string
|
|
- description: The sorting parameter. You can pass this multiple times to get
|
|
the tasks ordered by multiple different parametes, along with `order_by`.
|
|
Possible values to sort by are `id`, `text`, `description`, `done`, `done_at_unix`,
|
|
`due_date_unix`, `created_by_id`, `list_id`, `repeat_after`, `priority`,
|
|
`start_date_unix`, `end_date_unix`, `hex_color`, `percent_done`, `uid`,
|
|
`created`, `updated`. Default is `id`.
|
|
in: query
|
|
name: sort_by
|
|
type: string
|
|
- description: The ordering parameter. Possible values to order by are `asc`
|
|
or `desc`. Default is `asc`.
|
|
in: query
|
|
name: order_by
|
|
type: string
|
|
- description: The start date parameter to filter by. Expects a unix timestamp.
|
|
If no end date, but a start date is specified, the end date is set to the
|
|
current time.
|
|
in: query
|
|
name: startdate
|
|
type: integer
|
|
- description: The end date parameter to filter by. Expects a unix timestamp.
|
|
If no start date, but an end date is specified, the start date is set to
|
|
the current time.
|
|
in: query
|
|
name: enddate
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The tasks
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.Task'
|
|
type: array
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Get tasks in a list
|
|
tags:
|
|
- task
|
|
/lists/{listID}/teams/{teamID}:
|
|
delete:
|
|
description: Delets a team from a list. The team won't have access to the list
|
|
anymore.
|
|
parameters:
|
|
- description: List ID
|
|
in: path
|
|
name: listID
|
|
required: true
|
|
type: integer
|
|
- description: Team ID
|
|
in: path
|
|
name: teamID
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The team was successfully deleted.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
"403":
|
|
description: The user does not have access to the list
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"404":
|
|
description: Team or list does not exist.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Delete a team from a list
|
|
tags:
|
|
- sharing
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Update a team <-> list relation. Mostly used to update the right
|
|
that team has.
|
|
parameters:
|
|
- description: List ID
|
|
in: path
|
|
name: listID
|
|
required: true
|
|
type: integer
|
|
- description: Team ID
|
|
in: path
|
|
name: teamID
|
|
required: true
|
|
type: integer
|
|
- description: The team you want to update.
|
|
in: body
|
|
name: list
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.TeamList'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The updated team <-> list relation.
|
|
schema:
|
|
$ref: '#/definitions/models.TeamList'
|
|
"403":
|
|
description: The user does not have admin-access to the list
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"404":
|
|
description: Team or list does not exist.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Update a team <-> list relation
|
|
tags:
|
|
- sharing
|
|
/lists/{listID}/users/{userID}:
|
|
delete:
|
|
description: Delets a user from a list. The user won't have access to the list
|
|
anymore.
|
|
parameters:
|
|
- description: List ID
|
|
in: path
|
|
name: listID
|
|
required: true
|
|
type: integer
|
|
- description: User ID
|
|
in: path
|
|
name: userID
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The user was successfully removed from the list.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
"403":
|
|
description: The user does not have access to the list
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"404":
|
|
description: user or list does not exist.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Delete a user from a list
|
|
tags:
|
|
- sharing
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Update a user <-> list relation. Mostly used to update the right
|
|
that user has.
|
|
parameters:
|
|
- description: List ID
|
|
in: path
|
|
name: listID
|
|
required: true
|
|
type: integer
|
|
- description: User ID
|
|
in: path
|
|
name: userID
|
|
required: true
|
|
type: integer
|
|
- description: The user you want to update.
|
|
in: body
|
|
name: list
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.ListUser'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The updated user <-> list relation.
|
|
schema:
|
|
$ref: '#/definitions/models.ListUser'
|
|
"403":
|
|
description: The user does not have admin-access to the list
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"404":
|
|
description: User or list does not exist.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Update a user <-> list relation
|
|
tags:
|
|
- sharing
|
|
/login:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Logs a user in. Returns a JWT-Token to authenticate further requests.
|
|
parameters:
|
|
- description: The login credentials
|
|
in: body
|
|
name: credentials
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.UserLogin'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/v1.Token'
|
|
"400":
|
|
description: Invalid user password model.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
"403":
|
|
description: Invalid username or password.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
summary: Login
|
|
tags:
|
|
- user
|
|
/migration/wunderlist/auth:
|
|
get:
|
|
description: Returns the auth url where the user needs to get its auth code.
|
|
This code can then be used to migrate everything from wunderlist to Vikunja.
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The auth url.
|
|
schema:
|
|
$ref: '#/definitions/handler.AuthURL'
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Get the auth url from wunderlist
|
|
tags:
|
|
- migration
|
|
/migration/wunderlist/migrate:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Migrates all folders, lists, tasks, notes, reminders, subtasks
|
|
and files from wunderlist to vikunja.
|
|
parameters:
|
|
- description: The auth code previously obtained from the auth url. See the
|
|
docs for /migration/wunderlist/auth.
|
|
in: body
|
|
name: migrationCode
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/wunderlist.Migration'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: A message telling you everything was migrated successfully.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
"500":
|
|
description: Internal server error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Migrate all lists, tasks etc. from wunderlist
|
|
tags:
|
|
- migration
|
|
/namespace/{id}:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Updates a namespace.
|
|
parameters:
|
|
- description: Namespace ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: The namespace with updated values you want to update.
|
|
in: body
|
|
name: namespace
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.Namespace'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The updated namespace.
|
|
schema:
|
|
$ref: '#/definitions/models.Namespace'
|
|
"400":
|
|
description: Invalid namespace object provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"403":
|
|
description: The user does not have access to the namespace
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Updates a namespace
|
|
tags:
|
|
- namespace
|
|
/namespaces:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Returns all namespaces a user has access to.
|
|
parameters:
|
|
- description: The page number. Used for pagination. If not provided, the first
|
|
page of results is returned.
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: The maximum number of items per page. Note this parameter is
|
|
limited by the configured maximum of items per page.
|
|
in: query
|
|
name: per_page
|
|
type: integer
|
|
- description: Search namespaces by name.
|
|
in: query
|
|
name: s
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The Namespaces.
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.NamespaceWithLists'
|
|
type: array
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Get all namespaces a user has access to
|
|
tags:
|
|
- namespace
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Creates a new namespace.
|
|
parameters:
|
|
- description: The namespace you want to create.
|
|
in: body
|
|
name: namespace
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.Namespace'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The created namespace.
|
|
schema:
|
|
$ref: '#/definitions/models.Namespace'
|
|
"400":
|
|
description: Invalid namespace object provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"403":
|
|
description: The user does not have access to the namespace
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Creates a new namespace
|
|
tags:
|
|
- namespace
|
|
/namespaces/{id}:
|
|
delete:
|
|
description: Delets a namespace
|
|
parameters:
|
|
- description: Namespace ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The namespace was successfully deleted.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
"400":
|
|
description: Invalid namespace object provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"403":
|
|
description: The user does not have access to the namespace
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Deletes a namespace
|
|
tags:
|
|
- namespace
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Returns a namespace by its ID.
|
|
parameters:
|
|
- description: Namespace ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The Namespace
|
|
schema:
|
|
$ref: '#/definitions/models.Namespace'
|
|
"403":
|
|
description: The user does not have access to that namespace.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Gets one namespace
|
|
tags:
|
|
- namespace
|
|
/namespaces/{id}/lists:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Returns all lists inside of a namespace.
|
|
parameters:
|
|
- description: Namespace ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The lists.
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.List'
|
|
type: array
|
|
"403":
|
|
description: No access to that namespace.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
"404":
|
|
description: The namespace does not exist.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Get all lists in a namespace
|
|
tags:
|
|
- namespace
|
|
/namespaces/{id}/teams:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Returns a namespace with all teams which have access on a given
|
|
namespace.
|
|
parameters:
|
|
- description: Namespace ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: The page number. Used for pagination. If not provided, the first
|
|
page of results is returned.
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: The maximum number of items per page. Note this parameter is
|
|
limited by the configured maximum of items per page.
|
|
in: query
|
|
name: per_page
|
|
type: integer
|
|
- description: Search teams by its name.
|
|
in: query
|
|
name: s
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The teams with the right they have.
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.TeamWithRight'
|
|
type: array
|
|
"403":
|
|
description: No right to see the namespace.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Get teams on a namespace
|
|
tags:
|
|
- sharing
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Gives a team access to a namespace.
|
|
parameters:
|
|
- description: Namespace ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: The team you want to add to the namespace.
|
|
in: body
|
|
name: namespace
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.TeamNamespace'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The created team<->namespace relation.
|
|
schema:
|
|
$ref: '#/definitions/models.TeamNamespace'
|
|
"400":
|
|
description: Invalid team namespace object provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"403":
|
|
description: The team does not have access to the namespace
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"404":
|
|
description: The team does not exist.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Add a team to a namespace
|
|
tags:
|
|
- sharing
|
|
/namespaces/{id}/users:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Returns a namespace with all users which have access on a given
|
|
namespace.
|
|
parameters:
|
|
- description: Namespace ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: The page number. Used for pagination. If not provided, the first
|
|
page of results is returned.
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: The maximum number of items per page. Note this parameter is
|
|
limited by the configured maximum of items per page.
|
|
in: query
|
|
name: per_page
|
|
type: integer
|
|
- description: Search users by its name.
|
|
in: query
|
|
name: s
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The users with the right they have.
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.UserWithRight'
|
|
type: array
|
|
"403":
|
|
description: No right to see the namespace.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Get users on a namespace
|
|
tags:
|
|
- sharing
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Gives a user access to a namespace.
|
|
parameters:
|
|
- description: Namespace ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: The user you want to add to the namespace.
|
|
in: body
|
|
name: namespace
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.NamespaceUser'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The created user<->namespace relation.
|
|
schema:
|
|
$ref: '#/definitions/models.NamespaceUser'
|
|
"400":
|
|
description: Invalid user namespace object provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"403":
|
|
description: The user does not have access to the namespace
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"404":
|
|
description: The user does not exist.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Add a user to a namespace
|
|
tags:
|
|
- sharing
|
|
/namespaces/{namespaceID}/lists:
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Creates a new list in a given namespace. The user needs write-access
|
|
to the namespace.
|
|
parameters:
|
|
- description: Namespace ID
|
|
in: path
|
|
name: namespaceID
|
|
required: true
|
|
type: integer
|
|
- description: The list you want to create.
|
|
in: body
|
|
name: list
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.List'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The created list.
|
|
schema:
|
|
$ref: '#/definitions/models.List'
|
|
"400":
|
|
description: Invalid list object provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"403":
|
|
description: The user does not have access to the list
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Creates a new list
|
|
tags:
|
|
- list
|
|
/namespaces/{namespaceID}/teams/{teamID}:
|
|
delete:
|
|
description: Delets a team from a namespace. The team won't have access to the
|
|
namespace anymore.
|
|
parameters:
|
|
- description: Namespace ID
|
|
in: path
|
|
name: namespaceID
|
|
required: true
|
|
type: integer
|
|
- description: team ID
|
|
in: path
|
|
name: teamID
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The team was successfully deleted.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
"403":
|
|
description: The team does not have access to the namespace
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"404":
|
|
description: team or namespace does not exist.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Delete a team from a namespace
|
|
tags:
|
|
- sharing
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Update a team <-> namespace relation. Mostly used to update the
|
|
right that team has.
|
|
parameters:
|
|
- description: Namespace ID
|
|
in: path
|
|
name: namespaceID
|
|
required: true
|
|
type: integer
|
|
- description: Team ID
|
|
in: path
|
|
name: teamID
|
|
required: true
|
|
type: integer
|
|
- description: The team you want to update.
|
|
in: body
|
|
name: namespace
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.TeamNamespace'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The updated team <-> namespace relation.
|
|
schema:
|
|
$ref: '#/definitions/models.TeamNamespace'
|
|
"403":
|
|
description: The team does not have admin-access to the namespace
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"404":
|
|
description: Team or namespace does not exist.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Update a team <-> namespace relation
|
|
tags:
|
|
- sharing
|
|
/namespaces/{namespaceID}/users/{userID}:
|
|
delete:
|
|
description: Delets a user from a namespace. The user won't have access to the
|
|
namespace anymore.
|
|
parameters:
|
|
- description: Namespace ID
|
|
in: path
|
|
name: namespaceID
|
|
required: true
|
|
type: integer
|
|
- description: user ID
|
|
in: path
|
|
name: userID
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The user was successfully deleted.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
"403":
|
|
description: The user does not have access to the namespace
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"404":
|
|
description: user or namespace does not exist.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Delete a user from a namespace
|
|
tags:
|
|
- sharing
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Update a user <-> namespace relation. Mostly used to update the
|
|
right that user has.
|
|
parameters:
|
|
- description: Namespace ID
|
|
in: path
|
|
name: namespaceID
|
|
required: true
|
|
type: integer
|
|
- description: User ID
|
|
in: path
|
|
name: userID
|
|
required: true
|
|
type: integer
|
|
- description: The user you want to update.
|
|
in: body
|
|
name: namespace
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.NamespaceUser'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The updated user <-> namespace relation.
|
|
schema:
|
|
$ref: '#/definitions/models.NamespaceUser'
|
|
"403":
|
|
description: The user does not have admin-access to the namespace
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"404":
|
|
description: User or namespace does not exist.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Update a user <-> namespace relation
|
|
tags:
|
|
- sharing
|
|
/register:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Creates a new user account.
|
|
parameters:
|
|
- description: The user credentials
|
|
in: body
|
|
name: credentials
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.APIUserPassword'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.User'
|
|
"400":
|
|
description: No or invalid user register object provided / User already
|
|
exists.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
summary: Register
|
|
tags:
|
|
- user
|
|
/shares/{share}/auth:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Get a jwt auth token for a shared list from a share hash.
|
|
parameters:
|
|
- description: The share hash
|
|
in: path
|
|
name: share
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The valid jwt auth token.
|
|
schema:
|
|
$ref: '#/definitions/v1.Token'
|
|
"400":
|
|
description: Invalid link share object provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
summary: Get an auth token for a share
|
|
tags:
|
|
- sharing
|
|
/tasks/{ID}:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Returns one task by its ID
|
|
parameters:
|
|
- description: The task ID
|
|
in: path
|
|
name: ID
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The task
|
|
schema:
|
|
$ref: '#/definitions/models.Task'
|
|
"404":
|
|
description: Task not found
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Get one task
|
|
tags:
|
|
- task
|
|
/tasks/{id}:
|
|
delete:
|
|
description: Deletes a task from a list. This does not mean "mark it done".
|
|
parameters:
|
|
- description: Task ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The created task object.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
"400":
|
|
description: Invalid task ID provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"403":
|
|
description: The user does not have access to the list
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Delete a task
|
|
tags:
|
|
- task
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Updates a task. This includes marking it as done. Assignees you
|
|
pass will be updated, see their individual endpoints for more details on how
|
|
this is done. To update labels, see the description of the endpoint.
|
|
parameters:
|
|
- description: Task ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: The task object
|
|
in: body
|
|
name: task
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.Task'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The updated task object.
|
|
schema:
|
|
$ref: '#/definitions/models.Task'
|
|
"400":
|
|
description: Invalid task object provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"403":
|
|
description: The user does not have access to the task (aka its list)
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Update a task
|
|
tags:
|
|
- task
|
|
/tasks/{id}/attachments:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Get all task attachments for one task.
|
|
parameters:
|
|
- description: Task ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: The page number. Used for pagination. If not provided, the first
|
|
page of results is returned.
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: The maximum number of items per page. Note this parameter is
|
|
limited by the configured maximum of items per page.
|
|
in: query
|
|
name: per_page
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: All attachments for this task
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.TaskAttachment'
|
|
type: array
|
|
"403":
|
|
description: No access to this task.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
"404":
|
|
description: The task does not exist.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Get all attachments for one task.
|
|
tags:
|
|
- task
|
|
put:
|
|
consumes:
|
|
- multipart/form-data
|
|
description: Upload a task attachment. You can pass multiple files with the
|
|
files form param.
|
|
parameters:
|
|
- description: Task ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: The file, as multipart form file. You can pass multiple.
|
|
in: formData
|
|
name: files
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Attachments were uploaded successfully.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
"403":
|
|
description: No access to the task.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
"404":
|
|
description: The task does not exist.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Upload a task attachment
|
|
tags:
|
|
- task
|
|
/tasks/{id}/attachments/{attachmentID}:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
description: Delete an attachment.
|
|
parameters:
|
|
- description: Task ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: Attachment ID
|
|
in: path
|
|
name: attachmentID
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The attachment was deleted successfully.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
"403":
|
|
description: No access to this task.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
"404":
|
|
description: The task does not exist.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Delete an attachment
|
|
tags:
|
|
- task
|
|
get:
|
|
description: Get one attachment for download. **Returns json on error.**
|
|
parameters:
|
|
- description: Task ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: Attachment ID
|
|
in: path
|
|
name: attachmentID
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/octet-stream
|
|
responses:
|
|
"200":
|
|
description: The attachment file.
|
|
schema:
|
|
type: ""
|
|
"403":
|
|
description: No access to this task.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
"404":
|
|
description: The task does not exist.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Get one attachment.
|
|
tags:
|
|
- task
|
|
/tasks/{task}/labels:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Returns all labels which are assicociated with a given task.
|
|
parameters:
|
|
- description: Task ID
|
|
in: path
|
|
name: task
|
|
required: true
|
|
type: integer
|
|
- description: The page number. Used for pagination. If not provided, the first
|
|
page of results is returned.
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: The maximum number of items per page. Note this parameter is
|
|
limited by the configured maximum of items per page.
|
|
in: query
|
|
name: per_page
|
|
type: integer
|
|
- description: Search labels by label text.
|
|
in: query
|
|
name: s
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The labels
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.Label'
|
|
type: array
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Get all labels on a task
|
|
tags:
|
|
- labels
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Add a label to a task. The user needs to have write-access to the
|
|
list to be able do this.
|
|
parameters:
|
|
- description: Task ID
|
|
in: path
|
|
name: task
|
|
required: true
|
|
type: integer
|
|
- description: The label object
|
|
in: body
|
|
name: label
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.LabelTask'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The created label relation object.
|
|
schema:
|
|
$ref: '#/definitions/models.LabelTask'
|
|
"400":
|
|
description: Invalid label object provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"403":
|
|
description: Not allowed to add the label.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"404":
|
|
description: The label does not exist.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Add a label to a task
|
|
tags:
|
|
- labels
|
|
/tasks/{task}/labels/{label}:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
description: Remove a label from a task. The user needs to have write-access
|
|
to the list to be able do this.
|
|
parameters:
|
|
- description: Task ID
|
|
in: path
|
|
name: task
|
|
required: true
|
|
type: integer
|
|
- description: Label ID
|
|
in: path
|
|
name: label
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The label was successfully removed.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
"403":
|
|
description: Not allowed to remove the label.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"404":
|
|
description: Label not found.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Remove a label from a task
|
|
tags:
|
|
- labels
|
|
/tasks/{taskID}/assignees:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Returns an array with all assignees for this task.
|
|
parameters:
|
|
- description: The page number. Used for pagination. If not provided, the first
|
|
page of results is returned.
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: The maximum number of items per page. Note this parameter is
|
|
limited by the configured maximum of items per page.
|
|
in: query
|
|
name: per_page
|
|
type: integer
|
|
- description: Search assignees by their username.
|
|
in: query
|
|
name: s
|
|
type: string
|
|
- description: Task ID
|
|
in: path
|
|
name: taskID
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The assignees
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.User'
|
|
type: array
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Get all assignees for a task
|
|
tags:
|
|
- assignees
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Adds a new assignee to a task. The assignee needs to have access
|
|
to the list, the doer must be able to edit this task.
|
|
parameters:
|
|
- description: The assingee object
|
|
in: body
|
|
name: assignee
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.TaskAssginee'
|
|
type: object
|
|
- description: Task ID
|
|
in: path
|
|
name: taskID
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The created assingee object.
|
|
schema:
|
|
$ref: '#/definitions/models.TaskAssginee'
|
|
"400":
|
|
description: Invalid assignee object provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Add a new assignee to a task
|
|
tags:
|
|
- assignees
|
|
/tasks/{taskID}/assignees/{userID}:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
description: Un-assign a user from a task.
|
|
parameters:
|
|
- description: Task ID
|
|
in: path
|
|
name: taskID
|
|
required: true
|
|
type: integer
|
|
- description: Assignee user ID
|
|
in: path
|
|
name: userID
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The assignee was successfully deleted.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
"403":
|
|
description: Not allowed to delete the assignee.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Delete an assignee
|
|
tags:
|
|
- assignees
|
|
/tasks/{taskID}/assignees/bulk:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Adds multiple new assignees to a task. The assignee needs to have
|
|
access to the list, the doer must be able to edit this task. Every user not
|
|
in the list will be unassigned from the task, pass an empty array to unassign
|
|
everyone.
|
|
parameters:
|
|
- description: The array of assignees
|
|
in: body
|
|
name: assignee
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.BulkAssignees'
|
|
type: object
|
|
- description: Task ID
|
|
in: path
|
|
name: taskID
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The created assingees object.
|
|
schema:
|
|
$ref: '#/definitions/models.TaskAssginee'
|
|
"400":
|
|
description: Invalid assignee object provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Add multiple new assignees to a task
|
|
tags:
|
|
- assignees
|
|
/tasks/{taskID}/labels/bulk:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Updates all labels on a task. Every label which is not passed but
|
|
exists on the task will be deleted. Every label which does not exist on the
|
|
task will be added. All labels which are passed and already exist on the task
|
|
won't be touched.
|
|
parameters:
|
|
- description: The array of labels
|
|
in: body
|
|
name: label
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.LabelTaskBulk'
|
|
type: object
|
|
- description: Task ID
|
|
in: path
|
|
name: taskID
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The updated labels object.
|
|
schema:
|
|
$ref: '#/definitions/models.LabelTaskBulk'
|
|
"400":
|
|
description: Invalid label object provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Update all labels on a task.
|
|
tags:
|
|
- labels
|
|
/tasks/{taskID}/relations:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: The relation object
|
|
in: body
|
|
name: relation
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.TaskRelation'
|
|
type: object
|
|
- description: Task ID
|
|
in: path
|
|
name: taskID
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The task relation was successfully deleted.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
"400":
|
|
description: Invalid task relation object provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"404":
|
|
description: The task relation was not found.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Remove a task relation
|
|
tags:
|
|
- task
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Creates a new relation between two tasks. The user needs to have
|
|
update rights on the base task and at least read rights on the other task.
|
|
Both tasks do not need to be on the same list. Take a look at the docs for
|
|
available task relation kinds.
|
|
parameters:
|
|
- description: The relation object
|
|
in: body
|
|
name: relation
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.TaskRelation'
|
|
type: object
|
|
- description: Task ID
|
|
in: path
|
|
name: taskID
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The created task relation object.
|
|
schema:
|
|
$ref: '#/definitions/models.TaskRelation'
|
|
"400":
|
|
description: Invalid task relation object provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Create a new relation between two tasks
|
|
tags:
|
|
- task
|
|
/tasks/all:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Returns all tasks on any list the user has access to.
|
|
parameters:
|
|
- description: The page number. Used for pagination. If not provided, the first
|
|
page of results is returned.
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: The maximum number of items per page. Note this parameter is
|
|
limited by the configured maximum of items per page.
|
|
in: query
|
|
name: per_page
|
|
type: integer
|
|
- description: Search tasks by task text.
|
|
in: query
|
|
name: s
|
|
type: string
|
|
- description: The sorting parameter. Possible values to sort by are priority,
|
|
prioritydesc, priorityasc, duedate, duedatedesc, duedateasc.
|
|
in: query
|
|
name: sort
|
|
type: string
|
|
- description: The start date parameter to filter by. Expects a unix timestamp.
|
|
If no end date, but a start date is specified, the end date is set to the
|
|
current time.
|
|
in: query
|
|
name: startdate
|
|
type: integer
|
|
- description: The end date parameter to filter by. Expects a unix timestamp.
|
|
If no start date, but an end date is specified, the start date is set to
|
|
the current time.
|
|
in: query
|
|
name: enddate
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The tasks
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.Task'
|
|
type: array
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Get tasks
|
|
tags:
|
|
- task
|
|
/tasks/bulk:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: 'Updates a bunch of tasks at once. This includes marking them as
|
|
done. Note: although you could supply another ID, it will be ignored. Use
|
|
task_ids instead.'
|
|
parameters:
|
|
- description: The task object. Looks like a normal task, the only difference
|
|
is it uses an array of list_ids to update.
|
|
in: body
|
|
name: task
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.BulkTask'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The updated task object.
|
|
schema:
|
|
$ref: '#/definitions/models.Task'
|
|
"400":
|
|
description: Invalid task object provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"403":
|
|
description: The user does not have access to the task (aka its list)
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Update a bunch of tasks at once
|
|
tags:
|
|
- task
|
|
/teams:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Returns all teams the current user is part of.
|
|
parameters:
|
|
- description: The page number. Used for pagination. If not provided, the first
|
|
page of results is returned.
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: The maximum number of items per page. Note this parameter is
|
|
limited by the configured maximum of items per page.
|
|
in: query
|
|
name: per_page
|
|
type: integer
|
|
- description: Search teams by its name.
|
|
in: query
|
|
name: s
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The teams.
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.Team'
|
|
type: array
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Get teams
|
|
tags:
|
|
- team
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Creates a new team in a given namespace. The user needs write-access
|
|
to the namespace.
|
|
parameters:
|
|
- description: The team you want to create.
|
|
in: body
|
|
name: team
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.Team'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The created team.
|
|
schema:
|
|
$ref: '#/definitions/models.Team'
|
|
"400":
|
|
description: Invalid team object provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Creates a new team
|
|
tags:
|
|
- team
|
|
/teams/{id}:
|
|
delete:
|
|
description: Delets a team. This will also remove the access for all users in
|
|
that team.
|
|
parameters:
|
|
- description: Team ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The team was successfully deleted.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
"400":
|
|
description: Invalid team object provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Deletes a team
|
|
tags:
|
|
- team
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Updates a team.
|
|
parameters:
|
|
- description: Team ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: The team with updated values you want to update.
|
|
in: body
|
|
name: team
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.Team'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The updated team.
|
|
schema:
|
|
$ref: '#/definitions/models.Team'
|
|
"400":
|
|
description: Invalid team object provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Updates a team
|
|
tags:
|
|
- team
|
|
/teams/{id}/members:
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Add a user to a team.
|
|
parameters:
|
|
- description: Team ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: The user to be added to a team.
|
|
in: body
|
|
name: team
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.TeamMember'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The newly created member object
|
|
schema:
|
|
$ref: '#/definitions/models.TeamMember'
|
|
"400":
|
|
description: Invalid member object provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"403":
|
|
description: The user does not have access to the team
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Add a user to a team
|
|
tags:
|
|
- team
|
|
/teams/{id}/members/{userID}:
|
|
delete:
|
|
description: Remove a user from a team. This will also revoke any access this
|
|
user might have via that team.
|
|
parameters:
|
|
- description: Team ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: User ID
|
|
in: path
|
|
name: userID
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: The user was successfully removed from the team.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Remove a user from a team
|
|
tags:
|
|
- team
|
|
/user:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Returns the current user object.
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.User'
|
|
"404":
|
|
description: User does not exist.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal server error.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Get user information
|
|
tags:
|
|
- user
|
|
/user/confirm:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Confirms the email of a newly registered user.
|
|
parameters:
|
|
- description: The token.
|
|
in: body
|
|
name: credentials
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.EmailConfirm'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
"412":
|
|
description: Bad token provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
summary: Confirm the email of a new user
|
|
tags:
|
|
- user
|
|
/user/password:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Lets the current user change its password.
|
|
parameters:
|
|
- description: The current and new password.
|
|
in: body
|
|
name: userPassword
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/v1.UserPassword'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
"400":
|
|
description: Something's invalid.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"404":
|
|
description: User does not exist.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal server error.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Change password
|
|
tags:
|
|
- user
|
|
/user/password/reset:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Resets a user email with a previously reset token.
|
|
parameters:
|
|
- description: The token with the new password.
|
|
in: body
|
|
name: credentials
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.PasswordReset'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
"400":
|
|
description: Bad token provided.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
summary: Resets a password
|
|
tags:
|
|
- user
|
|
/user/password/token:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Requests a token to reset a users password. The token is sent via
|
|
email.
|
|
parameters:
|
|
- description: The username of the user to request a token for.
|
|
in: body
|
|
name: credentials
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/models.PasswordTokenRequest'
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
"404":
|
|
description: The user does not exist.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
summary: Request password reset token
|
|
tags:
|
|
- user
|
|
/user/token:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Returns a new valid jwt user token with an extended length.
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/v1.Token'
|
|
"400":
|
|
description: Only user token are available for renew.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
summary: Renew user token
|
|
tags:
|
|
- user
|
|
/users:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
description: Lists all users (without emailadresses). Also possible to search
|
|
for a specific user.
|
|
parameters:
|
|
- description: Search for a user by its name.
|
|
in: query
|
|
name: s
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: All (found) users.
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/models.User'
|
|
type: array
|
|
"400":
|
|
description: Something's invalid.
|
|
schema:
|
|
$ref: '#/definitions/code.vikunja.io/web.HTTPError'
|
|
"500":
|
|
description: Internal server error.
|
|
schema:
|
|
$ref: '#/definitions/models.Message'
|
|
security:
|
|
- JWTKeyAuth: []
|
|
summary: Get users
|
|
tags:
|
|
- user
|
|
securityDefinitions:
|
|
BasicAuth:
|
|
type: basic
|
|
JWTKeyAuth:
|
|
in: header
|
|
name: Authorization
|
|
type: apiKey
|
|
swagger: "2.0"
|