schema-fmt
This commit is contained in:
parent
27a358a41f
commit
971b87c0be
|
@ -1,177 +1,191 @@
|
||||||
type EnvVariable {
|
type EnvVariable {
|
||||||
key: String!
|
key: String!
|
||||||
value: String!
|
value: String!
|
||||||
description: String
|
description: String
|
||||||
type: String!
|
type: String!
|
||||||
isSecret: Boolean
|
isSecret: Boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
type EnvSection {
|
type EnvSection {
|
||||||
name: String!
|
name: String!
|
||||||
description: String
|
description: String
|
||||||
variables: [EnvVariable!]!
|
variables: [EnvVariable!]!
|
||||||
}
|
}
|
||||||
|
|
||||||
input EnvVariableInput {
|
input EnvVariableInput {
|
||||||
key: String!
|
key: String!
|
||||||
value: String!
|
value: String!
|
||||||
type: String!
|
type: String!
|
||||||
}
|
}
|
||||||
|
|
||||||
# Типы для управления пользователями
|
# Типы для управления пользователями
|
||||||
type AdminUserInfo {
|
type AdminUserInfo {
|
||||||
id: Int!
|
id: Int!
|
||||||
email: String
|
email: String
|
||||||
name: String
|
name: String
|
||||||
slug: String
|
slug: String
|
||||||
roles: [String!]
|
roles: [String!]
|
||||||
created_at: Int
|
created_at: Int
|
||||||
last_seen: Int
|
last_seen: Int
|
||||||
}
|
}
|
||||||
|
|
||||||
input AdminUserUpdateInput {
|
input AdminUserUpdateInput {
|
||||||
id: Int!
|
id: Int!
|
||||||
email: String
|
email: String
|
||||||
name: String
|
name: String
|
||||||
slug: String
|
slug: String
|
||||||
roles: [String!]
|
roles: [String!]
|
||||||
community: Int
|
community: Int
|
||||||
}
|
}
|
||||||
|
|
||||||
type Role {
|
type Role {
|
||||||
id: String!
|
id: String!
|
||||||
name: String!
|
name: String!
|
||||||
description: String
|
description: String
|
||||||
}
|
}
|
||||||
|
|
||||||
# Тип для пагинированного ответа пользователей
|
# Тип для пагинированного ответа пользователей
|
||||||
type AdminUserListResponse {
|
type AdminUserListResponse {
|
||||||
authors: [AdminUserInfo!]!
|
authors: [AdminUserInfo!]!
|
||||||
total: Int!
|
total: Int!
|
||||||
page: Int!
|
page: Int!
|
||||||
perPage: Int!
|
perPage: Int!
|
||||||
totalPages: Int!
|
totalPages: Int!
|
||||||
}
|
}
|
||||||
|
|
||||||
# Общий ответ на операцию с данными об успехе и ошибке
|
# Общий ответ на операцию с данными об успехе и ошибке
|
||||||
type OperationResult {
|
type OperationResult {
|
||||||
success: Boolean!
|
success: Boolean!
|
||||||
error: String
|
error: String
|
||||||
}
|
}
|
||||||
|
|
||||||
# Типы для управления публикациями (Shout)
|
# Типы для управления публикациями (Shout)
|
||||||
type AdminShoutInfo {
|
type AdminShoutInfo {
|
||||||
id: Int!
|
id: Int!
|
||||||
title: String!
|
title: String!
|
||||||
slug: String!
|
slug: String!
|
||||||
body: String!
|
body: String!
|
||||||
lead: String
|
lead: String
|
||||||
subtitle: String
|
subtitle: String
|
||||||
layout: String!
|
layout: String!
|
||||||
lang: String!
|
lang: String!
|
||||||
cover: String
|
cover: String
|
||||||
cover_caption: String
|
cover_caption: String
|
||||||
media: [MediaItem]
|
media: [MediaItem]
|
||||||
seo: String
|
seo: String
|
||||||
created_at: Int!
|
created_at: Int!
|
||||||
updated_at: Int
|
updated_at: Int
|
||||||
published_at: Int
|
published_at: Int
|
||||||
featured_at: Int
|
featured_at: Int
|
||||||
deleted_at: Int
|
deleted_at: Int
|
||||||
created_by: Author!
|
created_by: Author!
|
||||||
updated_by: Author
|
updated_by: Author
|
||||||
deleted_by: Author
|
deleted_by: Author
|
||||||
community: Community!
|
community: Community!
|
||||||
authors: [Author]
|
authors: [Author]
|
||||||
topics: [Topic]
|
topics: [Topic]
|
||||||
version_of: Int
|
version_of: Int
|
||||||
draft: Int
|
draft: Int
|
||||||
stat: Stat
|
stat: Stat
|
||||||
}
|
}
|
||||||
|
|
||||||
# Тип для пагинированного ответа публикаций
|
# Тип для пагинированного ответа публикаций
|
||||||
type AdminShoutListResponse {
|
type AdminShoutListResponse {
|
||||||
shouts: [AdminShoutInfo!]!
|
shouts: [AdminShoutInfo!]!
|
||||||
total: Int!
|
total: Int!
|
||||||
page: Int!
|
page: Int!
|
||||||
perPage: Int!
|
perPage: Int!
|
||||||
totalPages: Int!
|
totalPages: Int!
|
||||||
}
|
}
|
||||||
|
|
||||||
input AdminShoutUpdateInput {
|
input AdminShoutUpdateInput {
|
||||||
id: Int!
|
id: Int!
|
||||||
title: String
|
title: String
|
||||||
body: String
|
body: String
|
||||||
lead: String
|
lead: String
|
||||||
subtitle: String
|
subtitle: String
|
||||||
cover: String
|
cover: String
|
||||||
cover_caption: String
|
cover_caption: String
|
||||||
media: [MediaItemInput]
|
media: [MediaItemInput]
|
||||||
seo: String
|
seo: String
|
||||||
published_at: Int
|
published_at: Int
|
||||||
featured_at: Int
|
featured_at: Int
|
||||||
deleted_at: Int
|
deleted_at: Int
|
||||||
}
|
}
|
||||||
|
|
||||||
# Тип для отображения приглашения в админ-панели
|
# Тип для отображения приглашения в админ-панели
|
||||||
type AdminInviteInfo {
|
type AdminInviteInfo {
|
||||||
inviter_id: Int!
|
inviter_id: Int!
|
||||||
author_id: Int!
|
author_id: Int!
|
||||||
shout_id: Int!
|
shout_id: Int!
|
||||||
status: InviteStatus!
|
status: InviteStatus!
|
||||||
inviter: Author!
|
inviter: Author!
|
||||||
author: Author!
|
author: Author!
|
||||||
shout: AdminShoutInfo!
|
shout: AdminShoutInfo!
|
||||||
created_at: Int
|
created_at: Int
|
||||||
}
|
}
|
||||||
|
|
||||||
# Тип для пагинированного ответа приглашений
|
# Тип для пагинированного ответа приглашений
|
||||||
type AdminInviteListResponse {
|
type AdminInviteListResponse {
|
||||||
invites: [AdminInviteInfo!]!
|
invites: [AdminInviteInfo!]!
|
||||||
total: Int!
|
total: Int!
|
||||||
page: Int!
|
page: Int!
|
||||||
perPage: Int!
|
perPage: Int!
|
||||||
totalPages: Int!
|
totalPages: Int!
|
||||||
}
|
}
|
||||||
|
|
||||||
input AdminInviteUpdateInput {
|
input AdminInviteUpdateInput {
|
||||||
inviter_id: Int!
|
inviter_id: Int!
|
||||||
author_id: Int!
|
author_id: Int!
|
||||||
shout_id: Int!
|
shout_id: Int!
|
||||||
status: InviteStatus!
|
status: InviteStatus!
|
||||||
}
|
}
|
||||||
|
|
||||||
# Входной тип для идентификации приглашения при пакетном удалении
|
# Входной тип для идентификации приглашения при пакетном удалении
|
||||||
input AdminInviteIdInput {
|
input AdminInviteIdInput {
|
||||||
inviter_id: Int!
|
inviter_id: Int!
|
||||||
author_id: Int!
|
author_id: Int!
|
||||||
shout_id: Int!
|
shout_id: Int!
|
||||||
}
|
}
|
||||||
|
|
||||||
extend type Query {
|
extend type Query {
|
||||||
getEnvVariables: [EnvSection!]!
|
getEnvVariables: [EnvSection!]!
|
||||||
# Запросы для управления пользователями
|
# Запросы для управления пользователями
|
||||||
adminGetUsers(limit: Int, offset: Int, search: String): AdminUserListResponse!
|
adminGetUsers(limit: Int, offset: Int, search: String): AdminUserListResponse!
|
||||||
adminGetRoles: [Role!]!
|
adminGetRoles: [Role!]!
|
||||||
# Запросы для управления публикациями
|
# Запросы для управления публикациями
|
||||||
adminGetShouts(limit: Int, offset: Int, search: String, status: String): AdminShoutListResponse!
|
adminGetShouts(
|
||||||
# Запросы для управления приглашениями
|
limit: Int
|
||||||
adminGetInvites(limit: Int, offset: Int, search: String, status: String): AdminInviteListResponse!
|
offset: Int
|
||||||
|
search: String
|
||||||
|
status: String
|
||||||
|
): AdminShoutListResponse!
|
||||||
|
# Запросы для управления приглашениями
|
||||||
|
adminGetInvites(
|
||||||
|
limit: Int
|
||||||
|
offset: Int
|
||||||
|
search: String
|
||||||
|
status: String
|
||||||
|
): AdminInviteListResponse!
|
||||||
}
|
}
|
||||||
|
|
||||||
extend type Mutation {
|
extend type Mutation {
|
||||||
updateEnvVariable(key: String!, value: String!): Boolean!
|
updateEnvVariable(key: String!, value: String!): Boolean!
|
||||||
updateEnvVariables(variables: [EnvVariableInput!]!): Boolean!
|
updateEnvVariables(variables: [EnvVariableInput!]!): Boolean!
|
||||||
|
|
||||||
# Мутации для управления пользователями
|
# Мутации для управления пользователями
|
||||||
adminUpdateUser(user: AdminUserUpdateInput!): OperationResult!
|
adminUpdateUser(user: AdminUserUpdateInput!): OperationResult!
|
||||||
# Мутации для управления публикациями
|
# Мутации для управления публикациями
|
||||||
adminUpdateShout(shout: AdminShoutUpdateInput!): OperationResult!
|
adminUpdateShout(shout: AdminShoutUpdateInput!): OperationResult!
|
||||||
adminDeleteShout(id: Int!): OperationResult!
|
adminDeleteShout(id: Int!): OperationResult!
|
||||||
adminRestoreShout(id: Int!): OperationResult!
|
adminRestoreShout(id: Int!): OperationResult!
|
||||||
# Мутации для управления приглашениями
|
# Мутации для управления приглашениями
|
||||||
adminCreateInvite(invite: AdminInviteUpdateInput!): OperationResult!
|
adminCreateInvite(invite: AdminInviteUpdateInput!): OperationResult!
|
||||||
adminUpdateInvite(invite: AdminInviteUpdateInput!): OperationResult!
|
adminUpdateInvite(invite: AdminInviteUpdateInput!): OperationResult!
|
||||||
adminDeleteInvite(inviter_id: Int!, author_id: Int!, shout_id: Int!): OperationResult!
|
adminDeleteInvite(
|
||||||
adminDeleteInvitesBatch(invites: [AdminInviteIdInput!]!): OperationResult!
|
inviter_id: Int!
|
||||||
|
author_id: Int!
|
||||||
|
shout_id: Int!
|
||||||
|
): OperationResult!
|
||||||
|
adminDeleteInvitesBatch(invites: [AdminInviteIdInput!]!): OperationResult!
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,68 +1,66 @@
|
||||||
enum ReactionStatus {
|
enum ReactionStatus {
|
||||||
NEW
|
NEW
|
||||||
UPDATED
|
UPDATED
|
||||||
CHANGED
|
CHANGED
|
||||||
EXPLAINED
|
EXPLAINED
|
||||||
DELETED
|
DELETED
|
||||||
}
|
}
|
||||||
|
|
||||||
enum ReactionSort {
|
enum ReactionSort {
|
||||||
newest
|
newest
|
||||||
oldest
|
oldest
|
||||||
like
|
like
|
||||||
dislike
|
dislike
|
||||||
}
|
}
|
||||||
|
|
||||||
enum ShoutsOrderBy {
|
enum ShoutsOrderBy {
|
||||||
last_commented_at
|
last_commented_at
|
||||||
rating
|
rating
|
||||||
comments_count
|
comments_count
|
||||||
}
|
}
|
||||||
|
|
||||||
enum ReactionKind {
|
enum ReactionKind {
|
||||||
|
# collabs
|
||||||
|
AGREE
|
||||||
|
DISAGREE
|
||||||
|
ASK
|
||||||
|
PROPOSE
|
||||||
|
PROOF
|
||||||
|
DISPROOF
|
||||||
|
ACCEPT
|
||||||
|
REJECT
|
||||||
|
|
||||||
# collabs
|
# public feed
|
||||||
AGREE
|
QUOTE
|
||||||
DISAGREE
|
COMMENT
|
||||||
ASK
|
LIKE
|
||||||
PROPOSE
|
DISLIKE
|
||||||
PROOF
|
|
||||||
DISPROOF
|
|
||||||
ACCEPT
|
|
||||||
REJECT
|
|
||||||
|
|
||||||
# public feed
|
|
||||||
QUOTE
|
|
||||||
COMMENT
|
|
||||||
LIKE
|
|
||||||
DISLIKE
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
enum FollowingEntity {
|
enum FollowingEntity {
|
||||||
TOPIC
|
TOPIC
|
||||||
AUTHOR
|
AUTHOR
|
||||||
SHOUT
|
SHOUT
|
||||||
COMMUNITY
|
COMMUNITY
|
||||||
}
|
}
|
||||||
|
|
||||||
enum InviteStatus {
|
enum InviteStatus {
|
||||||
PENDING
|
PENDING
|
||||||
ACCEPTED
|
ACCEPTED
|
||||||
REJECTED
|
REJECTED
|
||||||
}
|
}
|
||||||
|
|
||||||
# Auth enums
|
# Auth enums
|
||||||
enum AuthAction {
|
enum AuthAction {
|
||||||
LOGIN
|
LOGIN
|
||||||
REGISTER
|
REGISTER
|
||||||
CONFIRM_EMAIL
|
CONFIRM_EMAIL
|
||||||
RESET_PASSWORD
|
RESET_PASSWORD
|
||||||
CHANGE_PASSWORD
|
CHANGE_PASSWORD
|
||||||
}
|
}
|
||||||
|
|
||||||
enum RoleType {
|
enum RoleType {
|
||||||
SYSTEM
|
SYSTEM
|
||||||
COMMUNITY
|
COMMUNITY
|
||||||
CUSTOM
|
CUSTOM
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,157 +1,157 @@
|
||||||
input MediaItemInput {
|
input MediaItemInput {
|
||||||
url: String
|
url: String
|
||||||
title: String
|
title: String
|
||||||
body: String
|
body: String
|
||||||
source: String
|
source: String
|
||||||
pic: String
|
pic: String
|
||||||
date: String
|
date: String
|
||||||
genre: String
|
genre: String
|
||||||
artist: String
|
artist: String
|
||||||
lyrics: String
|
lyrics: String
|
||||||
}
|
}
|
||||||
|
|
||||||
input AuthorInput {
|
input AuthorInput {
|
||||||
id: Int!
|
id: Int!
|
||||||
slug: String
|
slug: String
|
||||||
}
|
}
|
||||||
|
|
||||||
input TopicInput {
|
input TopicInput {
|
||||||
id: Int
|
id: Int
|
||||||
slug: String!
|
slug: String!
|
||||||
title: String
|
title: String
|
||||||
body: String
|
body: String
|
||||||
pic: String
|
pic: String
|
||||||
community: Int
|
community: Int
|
||||||
parent_ids: [Int]
|
parent_ids: [Int]
|
||||||
}
|
}
|
||||||
|
|
||||||
input TopicMergeInput {
|
input TopicMergeInput {
|
||||||
target_topic_id: Int!
|
target_topic_id: Int!
|
||||||
source_topic_ids: [Int!]!
|
source_topic_ids: [Int!]!
|
||||||
preserve_target_properties: Boolean
|
preserve_target_properties: Boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
input DraftInput {
|
input DraftInput {
|
||||||
id: Int
|
id: Int
|
||||||
# no created_at, updated_at, deleted_at, updated_by, deleted_by
|
# no created_at, updated_at, deleted_at, updated_by, deleted_by
|
||||||
layout: String
|
layout: String
|
||||||
shout_id: Int # Changed from shout: Shout
|
shout_id: Int # Changed from shout: Shout
|
||||||
author_ids: [Int!] # Changed from authors: [Author]
|
author_ids: [Int!] # Changed from authors: [Author]
|
||||||
topic_ids: [Int!] # Changed from topics: [Topic]
|
topic_ids: [Int!] # Changed from topics: [Topic]
|
||||||
main_topic_id: Int # Changed from main_topic: Topic
|
main_topic_id: Int # Changed from main_topic: Topic
|
||||||
media: [MediaItemInput] # Changed to use MediaItemInput
|
media: [MediaItemInput] # Changed to use MediaItemInput
|
||||||
lead: String
|
lead: String
|
||||||
subtitle: String
|
subtitle: String
|
||||||
lang: String
|
lang: String
|
||||||
seo: String
|
seo: String
|
||||||
body: String
|
body: String
|
||||||
title: String
|
title: String
|
||||||
slug: String
|
slug: String
|
||||||
cover: String
|
cover: String
|
||||||
cover_caption: String
|
cover_caption: String
|
||||||
}
|
}
|
||||||
|
|
||||||
input ProfileInput {
|
input ProfileInput {
|
||||||
slug: String
|
slug: String
|
||||||
name: String
|
name: String
|
||||||
pic: String
|
pic: String
|
||||||
links: [String]
|
links: [String]
|
||||||
bio: String
|
bio: String
|
||||||
about: String
|
about: String
|
||||||
}
|
}
|
||||||
|
|
||||||
input ReactionInput {
|
input ReactionInput {
|
||||||
id: Int
|
id: Int
|
||||||
kind: ReactionKind!
|
kind: ReactionKind!
|
||||||
shout: Int!
|
shout: Int!
|
||||||
quote: String
|
quote: String
|
||||||
body: String
|
body: String
|
||||||
reply_to: Int
|
reply_to: Int
|
||||||
}
|
}
|
||||||
|
|
||||||
input AuthorsBy {
|
input AuthorsBy {
|
||||||
last_seen: Int
|
last_seen: Int
|
||||||
created_at: Int
|
created_at: Int
|
||||||
slug: String
|
slug: String
|
||||||
name: String
|
name: String
|
||||||
topic: String
|
topic: String
|
||||||
order: String
|
order: String
|
||||||
after: Int
|
after: Int
|
||||||
stat: String
|
stat: String
|
||||||
}
|
}
|
||||||
|
|
||||||
input LoadShoutsFilters {
|
input LoadShoutsFilters {
|
||||||
topic: String
|
topic: String
|
||||||
author: String
|
author: String
|
||||||
layouts: [String]
|
layouts: [String]
|
||||||
featured: Boolean
|
featured: Boolean
|
||||||
reacted: Boolean # requires auth, used in load_shouts_feed
|
reacted: Boolean # requires auth, used in load_shouts_feed
|
||||||
after: Int
|
after: Int
|
||||||
community: Int
|
community: Int
|
||||||
}
|
}
|
||||||
|
|
||||||
input LoadShoutsOptions {
|
input LoadShoutsOptions {
|
||||||
filters: LoadShoutsFilters
|
filters: LoadShoutsFilters
|
||||||
limit: Int!
|
limit: Int!
|
||||||
random_limit: Int
|
random_limit: Int
|
||||||
offset: Int
|
offset: Int
|
||||||
order_by: ShoutsOrderBy
|
order_by: ShoutsOrderBy
|
||||||
order_by_desc: Boolean
|
order_by_desc: Boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
input ReactionBy {
|
input ReactionBy {
|
||||||
shout: String
|
shout: String
|
||||||
shout_id: Int
|
shout_id: Int
|
||||||
shouts: [String]
|
shouts: [String]
|
||||||
search: String
|
search: String
|
||||||
kinds: [ReactionKind]
|
kinds: [ReactionKind]
|
||||||
reply_to: Int # filter
|
reply_to: Int # filter
|
||||||
topic: String
|
topic: String
|
||||||
created_by: Int
|
created_by: Int
|
||||||
author_id: Int
|
author_id: Int
|
||||||
author: String
|
author: String
|
||||||
after: Int
|
after: Int
|
||||||
sort: ReactionSort # sort
|
sort: ReactionSort # sort
|
||||||
}
|
}
|
||||||
|
|
||||||
input NotificationSeenInput {
|
input NotificationSeenInput {
|
||||||
notifications: [Int]
|
notifications: [Int]
|
||||||
thread: Int
|
thread: Int
|
||||||
}
|
}
|
||||||
|
|
||||||
input CommunityInput {
|
input CommunityInput {
|
||||||
slug: String
|
slug: String
|
||||||
name: String
|
name: String
|
||||||
desc: String
|
desc: String
|
||||||
pic: String
|
pic: String
|
||||||
}
|
}
|
||||||
|
|
||||||
input CollectionInput {
|
input CollectionInput {
|
||||||
id: Int
|
id: Int
|
||||||
slug: String!
|
slug: String!
|
||||||
title: String!
|
title: String!
|
||||||
desc: String
|
desc: String
|
||||||
pic: String
|
pic: String
|
||||||
}
|
}
|
||||||
|
|
||||||
# Auth inputs
|
# Auth inputs
|
||||||
input LoginCredentials {
|
input LoginCredentials {
|
||||||
email: String!
|
email: String!
|
||||||
password: String!
|
password: String!
|
||||||
}
|
}
|
||||||
|
|
||||||
input RegisterInput {
|
input RegisterInput {
|
||||||
email: String!
|
email: String!
|
||||||
password: String
|
password: String
|
||||||
name: String
|
name: String
|
||||||
}
|
}
|
||||||
|
|
||||||
input ChangePasswordInput {
|
input ChangePasswordInput {
|
||||||
oldPassword: String!
|
oldPassword: String!
|
||||||
newPassword: String!
|
newPassword: String!
|
||||||
}
|
}
|
||||||
|
|
||||||
input ResetPasswordInput {
|
input ResetPasswordInput {
|
||||||
token: String!
|
token: String!
|
||||||
newPassword: String!
|
newPassword: String!
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,74 +1,78 @@
|
||||||
type Mutation {
|
type Mutation {
|
||||||
# Auth mutations
|
# Auth mutations
|
||||||
login(email: String!, password: String!): AuthResult!
|
login(email: String!, password: String!): AuthResult!
|
||||||
logout: AuthSuccess!
|
logout: AuthSuccess!
|
||||||
refreshToken: AuthResult!
|
refreshToken: AuthResult!
|
||||||
registerUser(email: String!, password: String, name: String): AuthResult!
|
registerUser(email: String!, password: String, name: String): AuthResult!
|
||||||
sendLink(email: String!, lang: String, template: String): Author!
|
sendLink(email: String!, lang: String, template: String): Author!
|
||||||
confirmEmail(token: String!): AuthResult!
|
confirmEmail(token: String!): AuthResult!
|
||||||
getSession: SessionInfo!
|
getSession: SessionInfo!
|
||||||
changePassword(oldPassword: String!, newPassword: String!): AuthSuccess!
|
changePassword(oldPassword: String!, newPassword: String!): AuthSuccess!
|
||||||
resetPassword(token: String!, newPassword: String!): AuthSuccess!
|
resetPassword(token: String!, newPassword: String!): AuthSuccess!
|
||||||
requestPasswordReset(email: String!, lang: String): AuthSuccess!
|
requestPasswordReset(email: String!, lang: String): AuthSuccess!
|
||||||
updateSecurity(email: String, old_password: String, new_password: String): SecurityUpdateResult!
|
updateSecurity(
|
||||||
confirmEmailChange(token: String!): SecurityUpdateResult!
|
email: String
|
||||||
cancelEmailChange: SecurityUpdateResult!
|
old_password: String
|
||||||
|
new_password: String
|
||||||
|
): SecurityUpdateResult!
|
||||||
|
confirmEmailChange(token: String!): SecurityUpdateResult!
|
||||||
|
cancelEmailChange: SecurityUpdateResult!
|
||||||
|
|
||||||
# author
|
# author
|
||||||
rate_author(rated_slug: String!, value: Int!): CommonResult!
|
rate_author(rated_slug: String!, value: Int!): CommonResult!
|
||||||
update_author(profile: ProfileInput!): CommonResult!
|
update_author(profile: ProfileInput!): CommonResult!
|
||||||
|
|
||||||
# draft
|
# draft
|
||||||
create_draft(draft_input: DraftInput!): CommonResult!
|
create_draft(draft_input: DraftInput!): CommonResult!
|
||||||
update_draft(draft_id: Int!, draft_input: DraftInput!): CommonResult!
|
update_draft(draft_id: Int!, draft_input: DraftInput!): CommonResult!
|
||||||
delete_draft(draft_id: Int!): CommonResult!
|
delete_draft(draft_id: Int!): CommonResult!
|
||||||
# publication
|
# publication
|
||||||
publish_shout(shout_id: Int!): CommonResult!
|
publish_shout(shout_id: Int!): CommonResult!
|
||||||
publish_draft(draft_id: Int!): CommonResult!
|
publish_draft(draft_id: Int!): CommonResult!
|
||||||
unpublish_draft(draft_id: Int!): CommonResult!
|
unpublish_draft(draft_id: Int!): CommonResult!
|
||||||
unpublish_shout(shout_id: Int!): CommonResult!
|
unpublish_shout(shout_id: Int!): CommonResult!
|
||||||
|
|
||||||
# follower
|
# follower
|
||||||
follow(what: FollowingEntity!, slug: String!): AuthorFollowsResult!
|
follow(what: FollowingEntity!, slug: String!): AuthorFollowsResult!
|
||||||
unfollow(what: FollowingEntity!, slug: String!): AuthorFollowsResult!
|
unfollow(what: FollowingEntity!, slug: String!): AuthorFollowsResult!
|
||||||
|
|
||||||
# topic
|
# topic
|
||||||
create_topic(topic_input: TopicInput!): CommonResult!
|
create_topic(topic_input: TopicInput!): CommonResult!
|
||||||
update_topic(topic_input: TopicInput!): CommonResult!
|
update_topic(topic_input: TopicInput!): CommonResult!
|
||||||
delete_topic(slug: String!): CommonResult!
|
delete_topic(slug: String!): CommonResult!
|
||||||
delete_topic_by_id(id: Int!): CommonResult!
|
delete_topic_by_id(id: Int!): CommonResult!
|
||||||
merge_topics(merge_input: TopicMergeInput!): CommonResult!
|
merge_topics(merge_input: TopicMergeInput!): CommonResult!
|
||||||
set_topic_parent(topic_id: Int!, parent_id: Int): CommonResult!
|
set_topic_parent(topic_id: Int!, parent_id: Int): CommonResult!
|
||||||
|
|
||||||
# reaction
|
# reaction
|
||||||
create_reaction(reaction: ReactionInput!): CommonResult!
|
create_reaction(reaction: ReactionInput!): CommonResult!
|
||||||
update_reaction(reaction: ReactionInput!): CommonResult!
|
update_reaction(reaction: ReactionInput!): CommonResult!
|
||||||
delete_reaction(reaction_id: Int!): CommonResult!
|
delete_reaction(reaction_id: Int!): CommonResult!
|
||||||
|
|
||||||
# collab
|
# collab
|
||||||
create_invite(slug: String, author_id: Int): CommonResult!
|
create_invite(slug: String, author_id: Int): CommonResult!
|
||||||
remove_author(slug: String, author_id: Int): CommonResult!
|
remove_author(slug: String, author_id: Int): CommonResult!
|
||||||
remove_invite(invite_id: Int!): CommonResult!
|
remove_invite(invite_id: Int!): CommonResult!
|
||||||
accept_invite(invite_id: Int!): CommonResult!
|
accept_invite(invite_id: Int!): CommonResult!
|
||||||
reject_invite(invite_id: Int!): CommonResult!
|
reject_invite(invite_id: Int!): CommonResult!
|
||||||
|
|
||||||
# bookmark
|
# bookmark
|
||||||
toggle_bookmark_shout(slug: String!): CommonResult!
|
toggle_bookmark_shout(slug: String!): CommonResult!
|
||||||
|
|
||||||
# notifier
|
# notifier
|
||||||
notification_mark_seen(notification_id: Int!, seen: Boolean): CommonResult!
|
notification_mark_seen(notification_id: Int!, seen: Boolean): CommonResult!
|
||||||
notifications_seen_after(after: Int!, seen: Boolean): CommonResult!
|
notifications_seen_after(after: Int!, seen: Boolean): CommonResult!
|
||||||
notifications_seen_thread(thread_id: String!, seen: Boolean): CommonResult!
|
notifications_seen_thread(thread_id: String!, seen: Boolean): CommonResult!
|
||||||
|
|
||||||
# community
|
# community
|
||||||
join_community(slug: String!): CommonResult!
|
join_community(slug: String!): CommonResult!
|
||||||
leave_community(slug: String!): CommonResult!
|
leave_community(slug: String!): CommonResult!
|
||||||
create_community(community_input: CommunityInput!): CommonResult!
|
create_community(community_input: CommunityInput!): CommonResult!
|
||||||
update_community(community_input: CommunityInput!): CommonResult!
|
update_community(community_input: CommunityInput!): CommonResult!
|
||||||
delete_community(slug: String!): CommonResult!
|
delete_community(slug: String!): CommonResult!
|
||||||
|
|
||||||
# collection
|
# collection
|
||||||
create_collection(collection_input: CollectionInput!): CommonResult!
|
create_collection(collection_input: CollectionInput!): CommonResult!
|
||||||
update_collection(collection_input: CollectionInput!): CommonResult!
|
update_collection(collection_input: CollectionInput!): CommonResult!
|
||||||
delete_collection(slug: String!): CommonResult!
|
delete_collection(slug: String!): CommonResult!
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,80 +1,100 @@
|
||||||
type Query {
|
type Query {
|
||||||
# author
|
# author
|
||||||
get_author(slug: String, author_id: Int): Author
|
get_author(slug: String, author_id: Int): Author
|
||||||
get_authors_all: [Author]
|
get_authors_all: [Author]
|
||||||
load_authors_by(by: AuthorsBy!, limit: Int, offset: Int): [Author]
|
load_authors_by(by: AuthorsBy!, limit: Int, offset: Int): [Author]
|
||||||
load_authors_search(text: String!, limit: Int, offset: Int): [Author!] # Search for authors by name or bio
|
load_authors_search(text: String!, limit: Int, offset: Int): [Author!] # Search for authors by name or bio
|
||||||
|
|
||||||
# Auth queries
|
# Auth queries
|
||||||
logout: AuthResult!
|
logout: AuthResult!
|
||||||
me: AuthResult!
|
me: AuthResult!
|
||||||
isEmailUsed(email: String!): Boolean!
|
isEmailUsed(email: String!): Boolean!
|
||||||
isAdmin: Boolean!
|
isAdmin: Boolean!
|
||||||
getOAuthProviders: [OAuthProvider!]!
|
getOAuthProviders: [OAuthProvider!]!
|
||||||
getRoles: [RolesInfo!]!
|
getRoles: [RolesInfo!]!
|
||||||
|
|
||||||
# community
|
# community
|
||||||
get_community: Community
|
get_community: Community
|
||||||
get_communities_all: [Community]
|
get_communities_all: [Community]
|
||||||
get_communities_by_author(slug: String, user: String, author_id: Int): [Community]
|
get_communities_by_author(
|
||||||
|
slug: String
|
||||||
|
user: String
|
||||||
|
author_id: Int
|
||||||
|
): [Community]
|
||||||
|
|
||||||
# collection
|
# collection
|
||||||
get_collection(slug: String!): Collection
|
get_collection(slug: String!): Collection
|
||||||
get_collections_all: [Collection]
|
get_collections_all: [Collection]
|
||||||
get_collections_by_author(slug: String, user: String, author_id: Int): [Collection]
|
get_collections_by_author(
|
||||||
|
slug: String
|
||||||
|
user: String
|
||||||
|
author_id: Int
|
||||||
|
): [Collection]
|
||||||
|
|
||||||
# follower
|
# follower
|
||||||
get_shout_followers(slug: String, shout_id: Int): [Author]
|
get_shout_followers(slug: String, shout_id: Int): [Author]
|
||||||
get_topic_followers(slug: String): [Author]
|
get_topic_followers(slug: String): [Author]
|
||||||
get_topic_authors(slug: String): [Author]
|
get_topic_authors(slug: String): [Author]
|
||||||
get_author_followers(slug: String, user: String, author_id: Int): [Author]
|
get_author_followers(slug: String, user: String, author_id: Int): [Author]
|
||||||
get_author_follows(slug: String, user: String, author_id: Int): CommonResult!
|
get_author_follows(slug: String, user: String, author_id: Int): CommonResult!
|
||||||
get_author_follows_topics(slug: String, user: String, author_id: Int): [Topic]
|
get_author_follows_topics(slug: String, user: String, author_id: Int): [Topic]
|
||||||
get_author_follows_authors(slug: String, user: String, author_id: Int): [Author]
|
get_author_follows_authors(
|
||||||
|
slug: String
|
||||||
|
user: String
|
||||||
|
author_id: Int
|
||||||
|
): [Author]
|
||||||
|
|
||||||
# reaction
|
# reaction
|
||||||
load_reactions_by(by: ReactionBy!, limit: Int, offset: Int): [Reaction]
|
load_reactions_by(by: ReactionBy!, limit: Int, offset: Int): [Reaction]
|
||||||
load_shout_comments(shout: Int!, limit: Int, offset: Int): [Reaction]
|
load_shout_comments(shout: Int!, limit: Int, offset: Int): [Reaction]
|
||||||
load_shout_ratings(shout: Int!, limit: Int, offset: Int): [Reaction]
|
load_shout_ratings(shout: Int!, limit: Int, offset: Int): [Reaction]
|
||||||
load_comment_ratings(comment: Int!, limit: Int, offset: Int): [Reaction]
|
load_comment_ratings(comment: Int!, limit: Int, offset: Int): [Reaction]
|
||||||
|
|
||||||
# branched comments pagination
|
# branched comments pagination
|
||||||
load_comments_branch(shout: Int!, parent_id: Int, limit: Int, offset: Int, sort: ReactionSort, children_limit: Int, children_offset: Int): [Reaction]
|
load_comments_branch(
|
||||||
|
shout: Int!
|
||||||
|
parent_id: Int
|
||||||
|
limit: Int
|
||||||
|
offset: Int
|
||||||
|
sort: ReactionSort
|
||||||
|
children_limit: Int
|
||||||
|
children_offset: Int
|
||||||
|
): [Reaction]
|
||||||
|
|
||||||
# reader
|
# reader
|
||||||
get_shout(slug: String, shout_id: Int): Shout
|
get_shout(slug: String, shout_id: Int): Shout
|
||||||
load_shouts_by(options: LoadShoutsOptions): [Shout]
|
load_shouts_by(options: LoadShoutsOptions): [Shout]
|
||||||
load_shouts_search(text: String!, options: LoadShoutsOptions): [SearchResult]
|
load_shouts_search(text: String!, options: LoadShoutsOptions): [SearchResult]
|
||||||
get_search_results_count(text: String!): CountResult!
|
get_search_results_count(text: String!): CountResult!
|
||||||
load_shouts_bookmarked(options: LoadShoutsOptions): [Shout]
|
load_shouts_bookmarked(options: LoadShoutsOptions): [Shout]
|
||||||
|
|
||||||
# rating
|
# rating
|
||||||
get_my_rates_shouts(shouts: [Int!]!): [MyRateShout]
|
get_my_rates_shouts(shouts: [Int!]!): [MyRateShout]
|
||||||
get_my_rates_comments(comments: [Int!]!): [MyRateComment]
|
get_my_rates_comments(comments: [Int!]!): [MyRateComment]
|
||||||
|
|
||||||
# public feeds
|
# public feeds
|
||||||
load_shouts_with_topic(slug: String, options: LoadShoutsOptions): [Shout] # topic feed
|
load_shouts_with_topic(slug: String, options: LoadShoutsOptions): [Shout] # topic feed
|
||||||
load_shouts_random_top(options: LoadShoutsOptions): [Shout] # random order, fixed filter, limit offset can be used
|
load_shouts_random_top(options: LoadShoutsOptions): [Shout] # random order, fixed filter, limit offset can be used
|
||||||
load_shouts_authored_by(slug: String, options: LoadShoutsOptions): [Shout] # author feed
|
load_shouts_authored_by(slug: String, options: LoadShoutsOptions): [Shout] # author feed
|
||||||
load_shouts_followed_by(slug: String, options: LoadShoutsOptions): [Shout] # another author feed
|
load_shouts_followed_by(slug: String, options: LoadShoutsOptions): [Shout] # another author feed
|
||||||
|
|
||||||
# my feeds
|
# my feeds
|
||||||
load_shouts_feed(options: LoadShoutsOptions): [Shout]
|
load_shouts_feed(options: LoadShoutsOptions): [Shout]
|
||||||
load_shouts_unrated(options: LoadShoutsOptions): [Shout]
|
load_shouts_unrated(options: LoadShoutsOptions): [Shout]
|
||||||
load_shouts_coauthored(options: LoadShoutsOptions): [Shout]
|
load_shouts_coauthored(options: LoadShoutsOptions): [Shout]
|
||||||
load_shouts_discussed(options: LoadShoutsOptions): [Shout]
|
load_shouts_discussed(options: LoadShoutsOptions): [Shout]
|
||||||
|
|
||||||
# editor
|
# editor
|
||||||
get_my_shout(shout_id: Int!): CommonResult!
|
get_my_shout(shout_id: Int!): CommonResult!
|
||||||
get_shouts_drafts: CommonResult!
|
get_shouts_drafts: CommonResult!
|
||||||
load_drafts: CommonResult!
|
load_drafts: CommonResult!
|
||||||
|
|
||||||
# topic
|
# topic
|
||||||
get_topic(slug: String!): Topic
|
get_topic(slug: String!): Topic
|
||||||
get_topics_all: [Topic]!
|
get_topics_all: [Topic]!
|
||||||
get_topics_by_author(slug: String, user: String, author_id: Int): [Topic]
|
get_topics_by_author(slug: String, user: String, author_id: Int): [Topic]
|
||||||
get_topics_by_community(community_id: Int!, limit: Int, offset: Int): [Topic]
|
get_topics_by_community(community_id: Int!, limit: Int, offset: Int): [Topic]
|
||||||
|
|
||||||
# notifier
|
# notifier
|
||||||
load_notifications(after: Int!, limit: Int, offset: Int): NotificationsResult!
|
load_notifications(after: Int!, limit: Int, offset: Int): NotificationsResult!
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,334 +1,334 @@
|
||||||
type AuthorStat {
|
type AuthorStat {
|
||||||
shouts: Int
|
shouts: Int
|
||||||
topics: Int
|
topics: Int
|
||||||
authors: Int
|
authors: Int
|
||||||
followers: Int
|
followers: Int
|
||||||
rating: Int
|
rating: Int
|
||||||
rating_shouts: Int
|
rating_shouts: Int
|
||||||
rating_comments: Int
|
rating_comments: Int
|
||||||
comments: Int
|
comments: Int
|
||||||
viewed: Int
|
viewed: Int
|
||||||
}
|
}
|
||||||
|
|
||||||
type Author {
|
type Author {
|
||||||
id: Int!
|
id: Int!
|
||||||
slug: String!
|
slug: String!
|
||||||
name: String
|
name: String
|
||||||
pic: String
|
pic: String
|
||||||
bio: String
|
bio: String
|
||||||
about: String
|
about: String
|
||||||
links: [String]
|
links: [String]
|
||||||
created_at: Int
|
created_at: Int
|
||||||
last_seen: Int
|
last_seen: Int
|
||||||
updated_at: Int
|
updated_at: Int
|
||||||
deleted_at: Int
|
deleted_at: Int
|
||||||
email: String
|
email: String
|
||||||
seo: String
|
seo: String
|
||||||
stat: AuthorStat # ratings inside
|
stat: AuthorStat # ratings inside
|
||||||
communities: [Community]
|
communities: [Community]
|
||||||
roles: [String!]
|
roles: [String!]
|
||||||
email_verified: Boolean
|
email_verified: Boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
type ReactionUpdating {
|
type ReactionUpdating {
|
||||||
error: String
|
error: String
|
||||||
status: ReactionStatus
|
status: ReactionStatus
|
||||||
reaction: Reaction
|
reaction: Reaction
|
||||||
}
|
}
|
||||||
|
|
||||||
type Rating {
|
type Rating {
|
||||||
rater: String!
|
rater: String!
|
||||||
value: Int!
|
value: Int!
|
||||||
}
|
}
|
||||||
|
|
||||||
type Reaction {
|
type Reaction {
|
||||||
id: Int!
|
id: Int!
|
||||||
shout: Shout!
|
shout: Shout!
|
||||||
created_at: Int!
|
created_at: Int!
|
||||||
created_by: Author!
|
created_by: Author!
|
||||||
updated_at: Int
|
updated_at: Int
|
||||||
deleted_at: Int
|
deleted_at: Int
|
||||||
deleted_by: Author
|
deleted_by: Author
|
||||||
range: String
|
range: String
|
||||||
kind: ReactionKind!
|
kind: ReactionKind!
|
||||||
body: String
|
body: String
|
||||||
reply_to: Int
|
reply_to: Int
|
||||||
stat: Stat
|
stat: Stat
|
||||||
oid: String
|
oid: String
|
||||||
# old_thread: String
|
# old_thread: String
|
||||||
first_replies: [Reaction]
|
first_replies: [Reaction]
|
||||||
}
|
}
|
||||||
|
|
||||||
type MediaItem {
|
type MediaItem {
|
||||||
url: String
|
url: String
|
||||||
title: String
|
title: String
|
||||||
body: String
|
body: String
|
||||||
source: String # image
|
source: String # image
|
||||||
pic: String
|
pic: String
|
||||||
|
|
||||||
# audio specific properties
|
# audio specific properties
|
||||||
date: String
|
date: String
|
||||||
genre: String
|
genre: String
|
||||||
artist: String
|
artist: String
|
||||||
lyrics: String
|
lyrics: String
|
||||||
}
|
}
|
||||||
|
|
||||||
type Shout {
|
type Shout {
|
||||||
id: Int!
|
id: Int!
|
||||||
title: String!
|
title: String!
|
||||||
slug: String!
|
slug: String!
|
||||||
body: String!
|
body: String!
|
||||||
layout: String!
|
layout: String!
|
||||||
|
|
||||||
lead: String
|
lead: String
|
||||||
subtitle: String
|
subtitle: String
|
||||||
lang: String
|
lang: String
|
||||||
cover: String
|
cover: String
|
||||||
cover_caption: String
|
cover_caption: String
|
||||||
|
|
||||||
community: Community!
|
community: Community!
|
||||||
main_topic: Topic
|
main_topic: Topic
|
||||||
created_by: Author!
|
created_by: Author!
|
||||||
topics: [Topic]
|
topics: [Topic]
|
||||||
authors: [Author]
|
authors: [Author]
|
||||||
updated_by: Author
|
updated_by: Author
|
||||||
deleted_by: Author
|
deleted_by: Author
|
||||||
|
|
||||||
created_at: Int!
|
created_at: Int!
|
||||||
updated_at: Int
|
updated_at: Int
|
||||||
published_at: Int
|
published_at: Int
|
||||||
featured_at: Int
|
featured_at: Int
|
||||||
deleted_at: Int
|
deleted_at: Int
|
||||||
|
|
||||||
seo: String # generated if not set
|
seo: String # generated if not set
|
||||||
version_of: Shout # TODO: use version_of somewhere
|
version_of: Shout # TODO: use version_of somewhere
|
||||||
draft: Draft
|
draft: Draft
|
||||||
media: [MediaItem]
|
media: [MediaItem]
|
||||||
stat: Stat
|
stat: Stat
|
||||||
score: Float
|
score: Float
|
||||||
}
|
}
|
||||||
|
|
||||||
type PublicationInfo {
|
type PublicationInfo {
|
||||||
id: Int!
|
id: Int!
|
||||||
slug: String!
|
slug: String!
|
||||||
published_at: Int
|
published_at: Int
|
||||||
}
|
}
|
||||||
|
|
||||||
type Draft {
|
type Draft {
|
||||||
id: Int!
|
id: Int!
|
||||||
created_at: Int!
|
created_at: Int!
|
||||||
created_by: Author!
|
created_by: Author!
|
||||||
community: Community!
|
community: Community!
|
||||||
layout: String
|
layout: String
|
||||||
slug: String
|
slug: String
|
||||||
title: String
|
title: String
|
||||||
subtitle: String
|
subtitle: String
|
||||||
lead: String
|
lead: String
|
||||||
body: String
|
body: String
|
||||||
media: [MediaItem]
|
media: [MediaItem]
|
||||||
cover: String
|
cover: String
|
||||||
cover_caption: String
|
cover_caption: String
|
||||||
lang: String
|
lang: String
|
||||||
seo: String
|
seo: String
|
||||||
|
|
||||||
# auto
|
# auto
|
||||||
updated_at: Int
|
updated_at: Int
|
||||||
deleted_at: Int
|
deleted_at: Int
|
||||||
updated_by: Author
|
updated_by: Author
|
||||||
deleted_by: Author
|
deleted_by: Author
|
||||||
authors: [Author]!
|
authors: [Author]!
|
||||||
topics: [Topic]!
|
topics: [Topic]!
|
||||||
publication: PublicationInfo
|
publication: PublicationInfo
|
||||||
}
|
}
|
||||||
|
|
||||||
type Stat {
|
type Stat {
|
||||||
rating: Int
|
rating: Int
|
||||||
comments_count: Int
|
comments_count: Int
|
||||||
viewed: Int
|
viewed: Int
|
||||||
last_commented_at: Int
|
last_commented_at: Int
|
||||||
}
|
}
|
||||||
|
|
||||||
type CommunityStat {
|
type CommunityStat {
|
||||||
shouts: Int!
|
shouts: Int!
|
||||||
followers: Int!
|
followers: Int!
|
||||||
authors: Int!
|
authors: Int!
|
||||||
}
|
}
|
||||||
|
|
||||||
type Community {
|
type Community {
|
||||||
id: Int!
|
id: Int!
|
||||||
slug: String!
|
slug: String!
|
||||||
name: String!
|
name: String!
|
||||||
desc: String
|
desc: String
|
||||||
pic: String!
|
pic: String!
|
||||||
created_at: Int!
|
created_at: Int!
|
||||||
created_by: Author!
|
created_by: Author!
|
||||||
stat: CommunityStat
|
stat: CommunityStat
|
||||||
}
|
}
|
||||||
|
|
||||||
type Collection {
|
type Collection {
|
||||||
id: Int!
|
id: Int!
|
||||||
slug: String!
|
slug: String!
|
||||||
title: String!
|
title: String!
|
||||||
desc: String
|
desc: String
|
||||||
pic: String
|
pic: String
|
||||||
amount: Int
|
amount: Int
|
||||||
published_at: Int
|
published_at: Int
|
||||||
created_at: Int!
|
created_at: Int!
|
||||||
created_by: Author!
|
created_by: Author!
|
||||||
}
|
}
|
||||||
|
|
||||||
type TopicStat {
|
type TopicStat {
|
||||||
shouts: Int!
|
shouts: Int!
|
||||||
followers: Int!
|
followers: Int!
|
||||||
authors: Int!
|
authors: Int!
|
||||||
comments: Int
|
comments: Int
|
||||||
}
|
}
|
||||||
|
|
||||||
type Topic {
|
type Topic {
|
||||||
id: Int!
|
id: Int!
|
||||||
slug: String!
|
slug: String!
|
||||||
title: String
|
title: String
|
||||||
body: String
|
body: String
|
||||||
pic: String
|
pic: String
|
||||||
community: Int
|
community: Int
|
||||||
parent_ids: [Int]
|
parent_ids: [Int]
|
||||||
stat: TopicStat
|
stat: TopicStat
|
||||||
oid: String
|
oid: String
|
||||||
is_main: Boolean
|
is_main: Boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
# output type
|
# output type
|
||||||
|
|
||||||
type CommonResult {
|
type CommonResult {
|
||||||
error: String
|
error: String
|
||||||
message: String
|
message: String
|
||||||
stats: String
|
stats: String
|
||||||
drafts: [Draft]
|
drafts: [Draft]
|
||||||
draft: Draft
|
draft: Draft
|
||||||
slugs: [String]
|
slugs: [String]
|
||||||
shout: Shout
|
shout: Shout
|
||||||
shouts: [Shout]
|
shouts: [Shout]
|
||||||
author: Author
|
author: Author
|
||||||
authors: [Author]
|
authors: [Author]
|
||||||
reaction: Reaction
|
reaction: Reaction
|
||||||
reactions: [Reaction]
|
reactions: [Reaction]
|
||||||
topic: Topic
|
topic: Topic
|
||||||
topics: [Topic]
|
topics: [Topic]
|
||||||
community: Community
|
community: Community
|
||||||
communities: [Community]
|
communities: [Community]
|
||||||
}
|
}
|
||||||
|
|
||||||
type SearchResult {
|
type SearchResult {
|
||||||
id: Int!
|
id: Int!
|
||||||
slug: String!
|
slug: String!
|
||||||
title: String!
|
title: String!
|
||||||
cover: String
|
cover: String
|
||||||
main_topic: Topic
|
main_topic: Topic
|
||||||
created_at: Int
|
created_at: Int
|
||||||
authors: [Author]
|
authors: [Author]
|
||||||
topics: [Topic]
|
topics: [Topic]
|
||||||
score: Float!
|
score: Float!
|
||||||
}
|
}
|
||||||
|
|
||||||
type Invite {
|
type Invite {
|
||||||
id: Int!
|
id: Int!
|
||||||
inviter_id: Int!
|
inviter_id: Int!
|
||||||
author_id: Int!
|
author_id: Int!
|
||||||
shout_id: Int!
|
shout_id: Int!
|
||||||
status: InviteStatus
|
status: InviteStatus
|
||||||
}
|
}
|
||||||
|
|
||||||
type AuthorFollowsResult {
|
type AuthorFollowsResult {
|
||||||
topics: [Topic]
|
topics: [Topic]
|
||||||
authors: [Author]
|
authors: [Author]
|
||||||
communities: [Community]
|
communities: [Community]
|
||||||
error: String
|
error: String
|
||||||
}
|
}
|
||||||
|
|
||||||
type Notification {
|
type Notification {
|
||||||
id: Int!
|
id: Int!
|
||||||
action: String!
|
action: String!
|
||||||
entity: String!
|
entity: String!
|
||||||
created_at: Int!
|
created_at: Int!
|
||||||
payload: String!
|
payload: String!
|
||||||
seen: [Author]
|
seen: [Author]
|
||||||
}
|
}
|
||||||
|
|
||||||
type NotificationSeenResult {
|
type NotificationSeenResult {
|
||||||
error: String
|
error: String
|
||||||
}
|
}
|
||||||
|
|
||||||
type NotificationGroup {
|
type NotificationGroup {
|
||||||
thread: String!
|
thread: String!
|
||||||
entity: String!
|
entity: String!
|
||||||
action: String!
|
action: String!
|
||||||
updated_at: Int!
|
updated_at: Int!
|
||||||
authors: [Author]
|
authors: [Author]
|
||||||
shout: Shout
|
shout: Shout
|
||||||
reactions: [Reaction]
|
reactions: [Reaction]
|
||||||
seen: Boolean
|
seen: Boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
type NotificationsResult {
|
type NotificationsResult {
|
||||||
notifications: [NotificationGroup!]!
|
notifications: [NotificationGroup!]!
|
||||||
unread: Int!
|
unread: Int!
|
||||||
total: Int!
|
total: Int!
|
||||||
error: String
|
error: String
|
||||||
}
|
}
|
||||||
|
|
||||||
type MyRateShout {
|
type MyRateShout {
|
||||||
shout_id: Int!
|
shout_id: Int!
|
||||||
my_rate: ReactionKind
|
my_rate: ReactionKind
|
||||||
}
|
}
|
||||||
|
|
||||||
type MyRateComment {
|
type MyRateComment {
|
||||||
shout_id: Int
|
shout_id: Int
|
||||||
comment_id: Int!
|
comment_id: Int!
|
||||||
my_rate: ReactionKind
|
my_rate: ReactionKind
|
||||||
}
|
}
|
||||||
|
|
||||||
# Auth types
|
# Auth types
|
||||||
type AuthResult {
|
type AuthResult {
|
||||||
success: Boolean!
|
success: Boolean!
|
||||||
error: String
|
error: String
|
||||||
token: String
|
token: String
|
||||||
author: Author
|
author: Author
|
||||||
}
|
}
|
||||||
|
|
||||||
type SecurityUpdateResult {
|
type SecurityUpdateResult {
|
||||||
success: Boolean!
|
success: Boolean!
|
||||||
error: String
|
error: String
|
||||||
author: Author
|
author: Author
|
||||||
}
|
}
|
||||||
|
|
||||||
type Permission {
|
type Permission {
|
||||||
resource: String!
|
resource: String!
|
||||||
action: String!
|
action: String!
|
||||||
conditions: String
|
conditions: String
|
||||||
}
|
}
|
||||||
|
|
||||||
type SessionInfo {
|
type SessionInfo {
|
||||||
token: String!
|
token: String!
|
||||||
author: Author!
|
author: Author!
|
||||||
}
|
}
|
||||||
|
|
||||||
type AuthSuccess {
|
type AuthSuccess {
|
||||||
success: Boolean!
|
success: Boolean!
|
||||||
}
|
}
|
||||||
|
|
||||||
type OAuthProvider {
|
type OAuthProvider {
|
||||||
id: String!
|
id: String!
|
||||||
name: String!
|
name: String!
|
||||||
url: String!
|
url: String!
|
||||||
}
|
}
|
||||||
|
|
||||||
type RolesInfo {
|
type RolesInfo {
|
||||||
id: String!
|
id: String!
|
||||||
name: String!
|
name: String!
|
||||||
description: String
|
description: String
|
||||||
permissions: [Permission!]!
|
permissions: [Permission!]!
|
||||||
}
|
}
|
||||||
|
|
||||||
type CountResult {
|
type CountResult {
|
||||||
count: Int!
|
count: Int!
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user