Skip to content

Latest commit

 

History

History
810 lines (700 loc) · 19.1 KB

File metadata and controls

810 lines (700 loc) · 19.1 KB

User Service API

Table of Contents

Query

Field Argument Type Description
findPublicUserInfos [PublicUserInfo]!

Gets the publicly available information for a list of users with the specified IDs. If a user does not exist, null is returned for that user.

ids [UUID!]!
currentUserInfo UserInfo!

Gets the user information of the currently authorized user.

findUserInfos [UserInfo]!

Gets all of the users' information for a list of users with the specified IDs. Only available to privileged users. If a user does not exist, null is returned for that user.

ids [UUID!]!
isAccessTokenAvailable Boolean!

Checks whether an access token for a given third-party provider exists and is still valid for the currently authenticated user. Returns true if:

  • The access token exists and is not expired, OR
  • The refresh token exists and is not expired.
provider ExternalServiceProviderDto!
_internal_noauth_getAccessToken AccessToken!

Retrieves the access token of the specified user for a specified third-party provider.

  • If the access token is expired but a valid refresh token is available, the system will attempt to generate a new access token.
  • Throws an exception if neither a valid access token nor a valid refresh token is available.

⚠️ This query is only accessible internally. ⚠️

userId UUID!
provider ExternalServiceProviderDto!
_internal_noauth_getExternalUserIds [ExternalUserIdWithUser!]!

Retrieves the external user IDs for a list of users with the specified IDs. If a user does not exist, null is returned for that user. If the user does not have an external user ID for the specified provider, null is returned for that user. ⚠️ This query is only accessible internally and the caller must be at least a tutor of a course. The permission must be validated by the caller method. ⚠️

userIds [UUID!]!
provider ExternalServiceProviderDto
findUserSettings Settings!
userId UUID
findUsersSettings [Settings]!
usersIds [UUID]!

Mutation

Field Argument Type Description
generateAccessToken Boolean!

Generates an access token for the given provider using an authorization code obtained from the OAuth flow. This should be called only after the user completes authorization and the frontend retrieves the auth code. After the access token is generated, the user is redirected to the redirect URI.

input GenerateAccessTokenInput!
updateSettings Settings!
userId UUID!
input SettingsInput!
defaultSettings Settings!
userId UUID!

Objects

AccessToken

Field Argument Type Description
accessToken String!
externalUserId String

ExternalUserIdWithUser

Field Argument Type Description
userId UUID!
externalUserId String!

Notification

Field Argument Type Description
gamification Boolean
lecture Boolean

PaginationInfo

Return type for information about paginated results.

Field Argument Type Description
page Int!

The current page number.

size Int!

The number of elements per page.

totalElements Int!

The total number of elements across all pages.

totalPages Int!

The total number of pages.

hasNext Boolean!

Whether there is a next page.

PublicUserInfo

Field Argument Type Description
id UUID!
userName String!

Settings

Field Argument Type Description
gamification Gamification
notification Notification

UserInfo

Field Argument Type Description
id UUID!
userName String!
firstName String!
lastName String!
realmRoles [GlobalUserRole!]!

Inputs

DateTimeFilter

Filter for date values. If multiple filters are specified, they are combined with AND.

Field Type Description
after DateTime

If specified, filters for dates after the specified value.

before DateTime

If specified, filters for dates before the specified value.

GenerateAccessTokenInput

Field Type Description
provider ExternalServiceProviderDto!
authorizationCode String!

IntFilter

Filter for integer values. If multiple filters are specified, they are combined with AND.

Field Type Description
equals Int

An integer value to match exactly.

greaterThan Int

If specified, filters for values greater than to the specified value.

lessThan Int

If specified, filters for values less than to the specified value.

NotificationInput

Field Type Description
gamification Boolean
lecture Boolean

Pagination

Specifies the page size and page number for paginated results.

Field Type Description
page Int!

The page number, starting at 0. If not specified, the default value is 0. For values greater than 0, the page size must be specified. If this value is larger than the number of pages, an empty page is returned.

size Int!

The number of elements per page.

SettingsInput

Field Type Description
gamification Gamification
notification NotificationInput

StringFilter

Filter for string values. If multiple filters are specified, they are combined with AND.

Field Type Description
equals String

A string value to match exactly.

contains String

A string value that must be contained in the field that is being filtered.

ignoreCase Boolean!

If true, the filter is case-insensitive.

Enums

ExternalServiceProviderDto

Value Description
GITHUB

Gamification

Value Description
GAMIFICATION_ENABLED
ADAPTIVE_GAMIFICATION_ENABLED
ALL_GAMIFICATION_DISABLED

GlobalUserRole

Value Description
SUPER_USER
COURSE_CREATOR

SortDirection

Specifies the sort direction, either ascending or descending.

Value Description
ASC
DESC

Scalars

Boolean

The Boolean scalar type represents true or false.

Date

DateTime

Int

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

LocalTime

String

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.

Time

UUID

Url