99 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			GraphQL
		
	
	
	
	
	
			
		
		
	
	
			99 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			GraphQL
		
	
	
	
	
	
| # ===============================================
 | |
| # USERS
 | |
| # ===============================================
 | |
| 
 | |
| extend type Query {
 | |
|   users: UserQuery
 | |
| }
 | |
| 
 | |
| extend type Mutation {
 | |
|   users: UserMutation
 | |
| }
 | |
| 
 | |
| # -----------------------------------------------
 | |
| # QUERIES
 | |
| # -----------------------------------------------
 | |
| 
 | |
| type UserQuery {
 | |
|   list(
 | |
|     filter: String
 | |
|     orderBy: String
 | |
|   ): [UserMinimal] @auth(requires: ["write:users", "manage:users", "manage:system"])
 | |
| 
 | |
|   search(
 | |
|     query: String!
 | |
|   ): [UserMinimal] @auth(requires: ["write:groups", "manage:groups", "write:users", "manage:users", "manage:system"])
 | |
| 
 | |
|   single(
 | |
|     id: Int!
 | |
|   ): User @auth(requires: ["manage:users", "manage:system"])
 | |
| }
 | |
| 
 | |
| # -----------------------------------------------
 | |
| # MUTATIONS
 | |
| # -----------------------------------------------
 | |
| 
 | |
| type UserMutation {
 | |
|   create(
 | |
|     email: String!
 | |
|     name: String
 | |
|     passwordRaw: String
 | |
|     providerKey: String!
 | |
|     providerId: String
 | |
|   ): UserResponse @auth(requires: ["write:users", "manage:users", "manage:system"])
 | |
| 
 | |
|   update(
 | |
|     id: Int!
 | |
|     email: String
 | |
|     name: String
 | |
|     providerKey: String
 | |
|     providerId: String
 | |
|   ): UserResponse @auth(requires: ["manage:users", "manage:system"])
 | |
| 
 | |
|   delete(
 | |
|     id: Int!
 | |
|   ): DefaultResponse @auth(requires: ["manage:users", "manage:system"])
 | |
| 
 | |
|   resetPassword(
 | |
|     id: Int!
 | |
|   ): DefaultResponse
 | |
| 
 | |
|   setPassword(
 | |
|     id: Int!
 | |
|     passwordRaw: String!
 | |
|   ): DefaultResponse
 | |
| }
 | |
| 
 | |
| # -----------------------------------------------
 | |
| # TYPES
 | |
| # -----------------------------------------------
 | |
| 
 | |
| type UserResponse {
 | |
|   responseResult: ResponseStatus!
 | |
|   user: User
 | |
| }
 | |
| 
 | |
| type UserMinimal {
 | |
|   id: Int!
 | |
|   name: String!
 | |
|   email: String!
 | |
|   providerKey: String!
 | |
|   isSystem: Boolean!
 | |
|   createdAt: Date!
 | |
| }
 | |
| 
 | |
| type User {
 | |
|   id: Int!
 | |
|   name: String!
 | |
|   email: String!
 | |
|   providerKey: String!
 | |
|   providerId: String
 | |
|   isSystem: Boolean!
 | |
|   location: String!
 | |
|   jobTitle: String!
 | |
|   timezone: String!
 | |
|   createdAt: Date!
 | |
|   updatedAt: Date!
 | |
|   groups: [Group]!
 | |
| }
 |