mobilizon.chapril.org-mobil.../js/src/graphql/report.ts

181 lines
3.0 KiB
TypeScript

import gql from "graphql-tag";
import { ACTOR_FRAGMENT } from "./actor";
export const REPORTS = gql`
query Reports(
$status: ReportStatus
$domain: String
$page: Int
$limit: Int
) {
reports(status: $status, domain: $domain, page: $page, limit: $limit) {
total
elements {
id
reported {
...ActorFragment
}
reporter {
...ActorFragment
}
event {
id
uuid
title
picture {
id
url
}
}
status
content
}
}
}
${ACTOR_FRAGMENT}
`;
const REPORT_FRAGMENT = gql`
fragment ReportFragment on Report {
id
reported {
...ActorFragment
}
reporter {
...ActorFragment
}
event {
id
uuid
title
description
picture {
id
url
}
}
comments {
id
text
actor {
...ActorFragment
}
}
notes {
id
content
moderator {
...ActorFragment
}
insertedAt
}
insertedAt
updatedAt
status
content
}
${ACTOR_FRAGMENT}
`;
export const REPORT = gql`
query Report($id: ID!) {
report(id: $id) {
...ReportFragment
}
}
${REPORT_FRAGMENT}
`;
export const CREATE_REPORT = gql`
mutation CreateReport(
$eventId: ID
$reportedId: ID!
$content: String
$commentsIds: [ID]
$forward: Boolean
) {
createReport(
eventId: $eventId
reportedId: $reportedId
content: $content
commentsIds: $commentsIds
forward: $forward
) {
id
}
}
`;
export const UPDATE_REPORT = gql`
mutation UpdateReport($reportId: ID!, $status: ReportStatus!) {
updateReportStatus(reportId: $reportId, status: $status) {
...ReportFragment
}
}
${REPORT_FRAGMENT}
`;
export const CREATE_REPORT_NOTE = gql`
mutation CreateReportNote($reportId: ID!, $content: String!) {
createReportNote(reportId: $reportId, content: $content) {
id
content
insertedAt
}
}
`;
export const LOGS = gql`
query ActionLogs($page: Int, $limit: Int) {
actionLogs(page: $page, limit: $limit) {
elements {
id
action
actor {
...ActorFragment
}
object {
... on Report {
id
}
... on ReportNote {
report {
id
}
}
... on Event {
id
title
}
... on Comment {
id
text
event {
id
title
uuid
}
actor {
...ActorFragment
}
}
... on Person {
...ActorFragment
}
... on Group {
...ActorFragment
}
... on User {
id
email
confirmedAt
}
}
insertedAt
}
total
}
}
${ACTOR_FRAGMENT}
`;