mirror of
https://git.vectorsigma.ru/public/photoview.git
synced 2026-08-03 20:49:02 +00:00
45 lines
1.3 KiB
GraphQL
45 lines
1.3 KiB
GraphQL
"Credentials used to identify and authenticate a share token"
|
|
input ShareTokenCredentials {
|
|
token: String!
|
|
password: String
|
|
}
|
|
|
|
"A token used to publicly access an album or media"
|
|
type ShareToken {
|
|
id: ID!
|
|
token: String!
|
|
"The user who created the token"
|
|
owner: User!
|
|
"Optional expire date"
|
|
expire: Time
|
|
"Whether or not a password is needed to access the share"
|
|
hasPassword: Boolean!
|
|
|
|
"The album this token shares"
|
|
album: Album
|
|
"The media this token shares"
|
|
media: Media
|
|
}
|
|
|
|
extend type Query {
|
|
"Fetch a share token containing an `Album` or `Media`"
|
|
shareToken(credentials: ShareTokenCredentials!): ShareToken!
|
|
|
|
"Check if the `ShareToken` credentials are valid"
|
|
shareTokenValidatePassword(credentials: ShareTokenCredentials!): Boolean!
|
|
}
|
|
|
|
extend type Mutation {
|
|
"Generate share token for album"
|
|
shareAlbum(albumId: ID!, expire: Time, password: String): ShareToken! @isAuthorized
|
|
|
|
"Generate share token for media"
|
|
shareMedia(mediaId: ID!, expire: Time, password: String): ShareToken! @isAuthorized
|
|
|
|
"Delete a share token by it's token value"
|
|
deleteShareToken(token: String!): ShareToken! @isAuthorized
|
|
|
|
"Set a password for a token, if null is passed for the password argument, the password will be cleared"
|
|
protectShareToken(token: String!, password: String): ShareToken! @isAuthorized
|
|
}
|