Files
mattermost-mobile/types/api/graphql.d.ts
Daniel Espino García fe52fcaab6 Add terms of service (#6777)
* Add terms of service

* Add i18n

* Fix test

* Address feedback

* Address ux feedback

* Update texts

* Avoid Review to show on top of ToS

Co-authored-by: Daniel Espino <danielespino@MacBook-Pro-de-Daniel.local>
2022-11-24 19:58:56 +01:00

186 lines
3.7 KiB
TypeScript

// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
type GQLResponse = {
errors?: GQLError[];
data: GQLData;
}
type GQLData = {
user?: Partial<GQLUser>;
config?: ClientConfig;
license?: ClientLicense;
teamMembers: Array<Partial<GQLTeamMembership>>;
channels?: Array<Partial<GQLChannel>>;
channelsLeft?: Array<Partial<GQLChannel>>;
channelMembers?: Array<Partial<GQLChannelMembership>>;
sidebarCategories?: Array<Partial<GQLSidebarCategory>>;
}
type GQLError = {
message: string;
path: Array<string | number>;
}
type GQLUser = {
id: string;
createAt: number;
updateAt: number;
deleteAt: number;
username: string;
authService: string;
email: string;
emailVerified: boolean;
nickname: string;
firstName: string;
lastName: string;
position: string;
locale: string;
notifyProps: UserNotifyProps;
props: UserProps;
timezone: UserTimezone;
isBot: boolean;
lastPictureUpdate: number;
remoteId: string;
botDescription: string;
botLastIconUpdate: number;
termsOfServiceId: string;
termsOfServiceCreateAt: number;
roles: Array<Partial<GQLRole>>;
customStatus: Partial<GQLUserCustomStatus>;
status: Partial<GQLUserStatus>;
preferences: Array<Partial<GQLPreference>>;
sessions: Array<Partial<GQLSession>>;
// Derived
isSystemAdmin: boolean;
isGuest: boolean;
}
type GQLSession = {
createAt: number;
expiresAt: number;
}
type GQLTeamMembership = {
team: Partial<GQLTeam>;
user: Partial<GQLUser>;
roles: Array<Partial<GQLRole>>;
deleteAt: number;
schemeGuest: boolean;
schemeUser: boolean;
schemeAdmin: boolean;
}
type GQLSidebarCategory = {
id: string;
sorting: CategorySorting;
type: CategoryType;
displayName: string;
muted: boolean;
collapsed: boolean;
channelIds: string[];
sortOrder: number;
teamId: string;
}
type GQLTeam = {
id: string;
displayName: string;
name: string;
description: string;
email: string;
type: TeamType;
companyName: string;
allowedDomains: string;
inviteId: string;
lastTeamIconUpdate: number;
groupConstrained: boolean;
allowOpenInvite: boolean;
updateAt: number;
createAt: number;
deleteAt: number;
schemeId: string;
policyId: string;
cloudLimitsArchived: boolean;
}
type GQLUserCustomStatus = {
emoji: string;
text: string;
duration: CustomStatusDuration;
expiresAt: string;
}
type GQLUserStatus = {
status: string;
manual: boolean;
lastActivityAt: number;
activeChannel: string;
dndEndTime: number;
}
type GQLPreference = {
userId: string;
category: string;
name: string;
value: string;
}
type GQLChannelMembership = {
channel: Partial<GQLChannel>;
user: Partial<GQLUser>;
roles: Array<Partial<GQLRole>>;
lastViewedAt: number;
msgCount: number;
msgCountRoot: number;
mentionCount: number;
mentionCountRoot: number;
notifyProps: ChannelNotifyProps;
lastUpdateAt: number;
schemeGuest: boolean;
schemeUser: boolean;
schemeAdmin: boolean;
explicitRoles: string;
cursor: string;
}
type GQLChannel = {
id: string;
createAt: number;
updateAt: number;
deleteAt: number;
type: ChannelType;
displayName: string;
prettyDisplayName: string;
name: string;
header: string;
purpose: string;
creatorId: string;
schemeId: string;
team: Partial<GQLTeam>;
cursor: string;
groupConstrained: boolean;
shared: boolean;
lastPostAt: number;
lastRootPostAt: number;
totalMsgCount: number;
totalMsgCountRoot: number;
stats: Partial<GQLStats>;
}
type GQLStats = {
guestCount: number;
memberCount: number;
pinnePostCount: number;
}
type GQLRole = {
id: string;
name: string;
permissions: string[];
schemeManaged: boolean;
builtIn: boolean;
}