Basic API works.

This commit is contained in:
2020-05-08 15:54:40 +02:00
parent 6837e7b4c8
commit 564ac0d24a
36 changed files with 1450 additions and 80 deletions
+20 -5
View File
@@ -1,10 +1,5 @@
type Issue {
id: String!
projectId: String!
ownerId: String!
assigneeId: String!
statusStage: Int!
statusName: String!
createdTime: Time!
updatedTime: Time!
dueTime: Time
@@ -15,6 +10,7 @@ type Issue {
project: Project
owner: User
assignee: User
status: ProjectStatus!
}
input IssueFilter {
@@ -34,4 +30,23 @@ input IssueFilter {
maxStage: Int
"Limit the result set"
limit: Int
}
input IssueCreateInput {
"Project ID"
projectId: String!
"Status stage"
statusStage: Int!
"Status name"
statusName: String!
"A name for the issue."
name: String!
"Description of the issue."
description: String!
"Assign this issue, will default to unassigned"
assigneeId: String
"A date when this issue is due"
dueTime: Time
"Optional title to use instead of the name when not in a list."
title: String
}
+16 -1
View File
@@ -1,4 +1,19 @@
type Mutation {
loginUser(input: UserLoginInput): User!
# PROJECT
"Create a new project"
createProject(input: ProjectCreateInput!): Project!
# ISSUE
"Create a new issue"
createIssue(input: IssueCreateInput!): Issue!
# USER
"Log in"
loginUser(input: UserLoginInput!): User!
"Log out"
logoutUser: User!
"Create a new user. This can only be done by administrators."
createUser(input: UserCreateInput!): User!
"Edit an existing user. This can only be done by administrators"
editUser(input: UserEditInput!): User!
}
+24 -6
View File
@@ -11,17 +11,17 @@ type Project {
"Get issues within the project."
issues(filter: ProjectIssueFilter): [Issue!]!
"All users' permissions. Only available to administrators and up."
permissions: [ProjectPermissions!]!
permissions: [ProjectPermission!]!
"Own permissions to the project. Available to any logged in user."
userPermissions: ProjectPermissions!
userPermissions: ProjectPermission!
"List all project statuses."
statuses(filter: ProjectStatusFilter): [ProjectStatus!]!
}
"The permissions of a user within the project."
type ProjectPermissions {
"User ID."
userId: String!
type ProjectPermission {
"Access level."
accessLevel: Int!
level: Int!
"The user whose permissions it is. Can be null if the user no longer exists."
user: User
@@ -67,4 +67,22 @@ input ProjectIssueFilter {
maxStage: Int
"Limit the result set"
limit: Int
}
input ProjectCreateInput {
"The ID of the project, which will be the prefix of all issue keys."
id: String!
"The name of the project, used in place of the ID in the UI."
name: String!
"Describe the project."
description: String!
"Bonus to points goal for any activity being done on a given day."
dailyPoints: Int!
}
input ProjectStatusFilter {
"Minimum stage of the project status to list"
minStage: Int!
"Maximum stage of the project status to list"
maxStage: Int!
}
+18 -2
View File
@@ -12,7 +12,23 @@ type User {
"Input for loginUser."
input UserLoginInput {
userId: String!
username: String!
password: String!
rememberMe: Boolean!
}
input UserCreateInput {
username: String!
password: String!
name: String!
active: Boolean
admin: Boolean
}
input UserEditInput {
username: String!
setName: String
setPassword: String
currentPassword: String
}