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