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