added schema from noise.sfs

This commit is contained in:
Johannes Schmelz 2021-12-20 16:46:02 +01:00
parent 845c969c46
commit 67f2a6b9c5

View File

@ -0,0 +1,166 @@
type Message {
id: ID!
timestamp: String!
sender: ID!
msgType: MsgType!
content: String
hideFor: [ID!]
seenBy: [ID!]!
}
type ExternalServersPreferences {
privacyPreferences: PrivacyPreferences!
externalServers: RestrictionPolicy!
externalServersLimit: [Url!]!
}
type Mutation {
newUser(newUser: NewUser!): ID!
newChat(user: ID!, passwordHash: String!, with: ID!): ID!
newGroupChat(user: ID!, passwordHash: String!, title: String!, description: String, with: [ID!]!): ID!
sendMessage(user: ID!, passwordHash: String!, chat: ID!, msg: MessageInput!): ID!
}
enum RestrictionPolicy {
EVERYONE
EXCLUDING
INCLUDING
NONE
}
type NotificationPreferences {
lockDetails: Boolean!
doNotDisturb: Boolean!
}
"""
DateTime
"""
scalar DateTimeUtc
"""
Url
"""
scalar Url
type Query {
getUserID(username: String!): ID!
isUsernameUsed(username: String!): Boolean!
users: [User!]!
userPreferences(id: ID!, passwordHash: String!): UserPreferences!
chats(user: ID!, passwordHash: String!): [Chat!]!
groupChats(user: ID!, passwordHash: String!): [GroupChat!]!
getMessages(user: ID!, passwordHash: String!, chat: ID!, lastMsg: ID, limit: Int): [Message!]!
}
type SecurityPreferences {
accountTokens: [ID!]!
passwordHash: String!
}
type PrivacyPreferences {
discovery: RestrictionPolicy!
discoveryUserLimit: [String!]!
discoveryServerLimit: [Url!]!
lastSeen: RestrictionPolicy!
lastSeenUserLimit: [String!]!
lastSeenServerLimit: [Url!]!
lastSeenCourse: Boolean!
info: RestrictionPolicy!
infoUserLimit: [String!]!
infoServerLimit: [Url!]!
}
type UserPreferences {
privacyPreferences: PrivacyPreferences!
notificationPreferences: NotificationPreferences!
securityPreferences: SecurityPreferences!
externalServersPreferences: ExternalServersPreferences!
}
input NewUser {
userName: String!
displayName: String
passwordHash: String!
}
input MessageInput {
msgType: MsgType!
content: String
}
type User {
id: ID!
userName: String!
displayName: String
activated: Boolean!
created: DateTimeUtc!
lastOnline: DateTimeUtc
}
enum MsgType {
TEXT
}
type Chat {
id: ID!
users: [ID!]!
}
type GroupChat {
id: ID!
title: String!
description: String
users: [ID!]!
}
schema {
query: Query
mutation: Mutation
}