Start writing GraphQL schema
Co-authored-by: Elias Schriefer
This commit is contained in:
parent
dfbd34a264
commit
0d4458d7dd
72
noise.graphql
Normal file
72
noise.graphql
Normal file
@ -0,0 +1,72 @@
|
||||
schema {
|
||||
query: Query
|
||||
}
|
||||
|
||||
type Query {
|
||||
users: [User!]!
|
||||
}
|
||||
|
||||
# Hopefully provided by juniper and chrono
|
||||
scalar DateTimeUtc
|
||||
# else it's probably DateTime
|
||||
# scalar DateTime
|
||||
|
||||
# Provided by juniper and url
|
||||
scalar Url
|
||||
|
||||
type User {
|
||||
id: ID!
|
||||
userName: String!
|
||||
displayName: String
|
||||
activated: Boolean!
|
||||
created: DateTimeUtc!
|
||||
lastOnline: DateTimeUtc
|
||||
preferences: UserPreferences!
|
||||
}
|
||||
|
||||
# All account preferences for a single user
|
||||
type UserPreferences {
|
||||
privacyPreference: PrivacyPreference!
|
||||
# TODO: notifications
|
||||
notificationPreference: NotificationPreference!
|
||||
# TODO: external servers
|
||||
# TODO: security
|
||||
}
|
||||
|
||||
type PrivacyPreference {
|
||||
# Discovery on other servers
|
||||
discovery: RestrictionPolicy!
|
||||
discoveryUserLimit: [String!]
|
||||
discoveryServerLimit: [Url!]
|
||||
|
||||
# Last seen online
|
||||
lastSeen: RestrictionPolicy!
|
||||
lastSeenUserLimit: [String!]
|
||||
lastSeenServerLimit: [Url!]
|
||||
# For enabled users/servers: Only give vague indications
|
||||
# e.g. recently, a long time ago
|
||||
lastSeenCourse: Boolean!
|
||||
|
||||
# Describing informational text regarding the user
|
||||
info: RestrictionPolicy!
|
||||
infoUserLimit: [String!]
|
||||
infoServerLimit: [Url!]
|
||||
|
||||
# One-purpose-passwords
|
||||
# TODO: move to security
|
||||
accountTokens: [ID!]!
|
||||
}
|
||||
|
||||
type NotificationPreference {
|
||||
lockDetails: Boolean!
|
||||
doNotDisturb: Boolean!
|
||||
}
|
||||
|
||||
# Everyone = Including all = Excluding none
|
||||
# None = Including none = Excluding all
|
||||
enum RestrictionPolicy {
|
||||
Everyone
|
||||
Excluding
|
||||
Including
|
||||
None
|
||||
}
|
Loading…
Reference in New Issue
Block a user