Copyright ©
2022- basebox GmbH, all rights reserved.
Licensed to be used in conjunction with basebox, only.
Licensed to be used in conjunction with basebox, only.
@currentUserId
Placeholder for the currently logged in user.
Syntax
- ResolverArgument:
-
ObjectField
:
"@currentUserId
"
Notes
The @currentUserId
is a special, request execution time directive that returns the current logged in user. So instead of passing the user id through as an operation argument, the user id (subject
in OAuth 2.0 terms) is taken out of the access token passed through, and matched with any user tables (i.e. those specified with a @bb_user
directive). It will then use the internal user id from the user table in place of the @currentUserId
directive. This is useful when the client does not have knowledge of the internal user id or it you do not want anyone to be able to run this operation against many different users (for example, in an attempt to get data for other users).
Examples
Basic INSERT resolver example using an input object
type PatientUser @bb_user {
id: ID!
name: String
}
type PatientAddress {
id: ID!
patient: Patient!
address: String
}
# insert a patient's address. Notice that only the address is passed in, not the user id
insertAddressForLoggedInPatient(address: String): PatientAddress!
@bb_resolver(
_type: INSERT,
_object: PatientAddress,
_fields: {
patient: {
# this will create a link to the Patient in the
# Patient table using the currently logged in
# user's internal database id.
id: "@currentUserId"
}
address: "$address"
}
)