mirror of
https://github.com/wassname/talk.git
synced 2026-08-01 13:00:55 +08:00
[CORL-294] Moderate a single story + quick search (#2286)
* feat: allow passing a `storyID` to `Query.moderationQueues` * feat: moderate by story * feat: implement search story combobox * feat: add translations * fix: tests * fix: duplicate id * fix: rename file * chore: add more comments * fix: add missing translation * review: use query parameter "q" instead of url path * chore: move placeholder logic inside, maybe this makes it clearer :-D
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import { GQLAcceptCommentPayloadTypeResolver } from "talk-server/graph/tenant/schema/__generated__/types";
|
||||
|
||||
import { moderationQueuesPayloadResolver } from "./ModerationQueues";
|
||||
import { moderationQueuesResolver } from "./ModerationQueues";
|
||||
|
||||
export const AcceptCommentPayload: GQLAcceptCommentPayloadTypeResolver = {
|
||||
moderationQueues: moderationQueuesPayloadResolver,
|
||||
moderationQueues: moderationQueuesResolver,
|
||||
};
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import {
|
||||
AcceptCommentPayloadToModerationQueuesResolver,
|
||||
GQLModerationQueuesTypeResolver,
|
||||
QueryToModerationQueuesResolver,
|
||||
RejectCommentPayloadToModerationQueuesResolver,
|
||||
} from "talk-server/graph/tenant/schema/__generated__/types";
|
||||
import { CommentConnectionInput } from "talk-server/models/comment";
|
||||
@@ -78,14 +79,16 @@ export const sharedModerationInputResolver = async (
|
||||
});
|
||||
|
||||
/**
|
||||
* moderationQueuesPayloadResolver implements the resolver that can be used for
|
||||
* moderation actions payloads.
|
||||
* moderationQueuesResolver implements the resolver that resolves to the
|
||||
* shared moderation queues or if `storyID` is provided to the story moderation
|
||||
* queues.
|
||||
*
|
||||
* @param source the source of the payload, not used
|
||||
* @param args the args of the payload containing potentially a Story ID
|
||||
* @param ctx the TenantContext for which we can use to retrieve the shared data
|
||||
*/
|
||||
export const moderationQueuesPayloadResolver:
|
||||
export const moderationQueuesResolver:
|
||||
| QueryToModerationQueuesResolver
|
||||
| AcceptCommentPayloadToModerationQueuesResolver
|
||||
| RejectCommentPayloadToModerationQueuesResolver = async (
|
||||
source,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { GQLQueryTypeResolver } from "talk-server/graph/tenant/schema/__generated__/types";
|
||||
|
||||
import { sharedModerationInputResolver } from "./ModerationQueues";
|
||||
import { moderationQueuesResolver } from "./ModerationQueues";
|
||||
|
||||
export const Query: Required<GQLQueryTypeResolver<void>> = {
|
||||
story: (source, args, ctx) => ctx.loaders.Stories.findOrCreate.load(args),
|
||||
@@ -16,5 +16,5 @@ export const Query: Required<GQLQueryTypeResolver<void>> = {
|
||||
ctx.loaders.Auth.discoverOIDCConfiguration.load(issuer),
|
||||
debugScrapeStoryMetadata: (source, { url }, ctx) =>
|
||||
ctx.loaders.Stories.debugScrapeMetadata.load(url),
|
||||
moderationQueues: sharedModerationInputResolver,
|
||||
moderationQueues: moderationQueuesResolver,
|
||||
};
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { GQLRejectCommentPayloadTypeResolver } from "talk-server/graph/tenant/schema/__generated__/types";
|
||||
|
||||
import { moderationQueuesPayloadResolver } from "./ModerationQueues";
|
||||
import { moderationQueuesResolver } from "./ModerationQueues";
|
||||
|
||||
export const RejectCommentPayload: GQLRejectCommentPayloadTypeResolver = {
|
||||
moderationQueues: moderationQueuesPayloadResolver,
|
||||
moderationQueues: moderationQueuesResolver,
|
||||
};
|
||||
|
||||
@@ -2081,9 +2081,10 @@ type Query {
|
||||
|
||||
"""
|
||||
moderationQueues returns the set of ModerationQueues that are available for
|
||||
all stories.
|
||||
all stories or if given the story identified by the `storyID`.
|
||||
"""
|
||||
moderationQueues: ModerationQueues! @auth(roles: [ADMIN, MODERATOR])
|
||||
moderationQueues(storyID: ID): ModerationQueues!
|
||||
@auth(roles: [ADMIN, MODERATOR])
|
||||
}
|
||||
|
||||
################################################################################
|
||||
|
||||
Reference in New Issue
Block a user