@paroicms/server
Version:
The ParoiCMS server
39 lines • 1.96 kB
JavaScript
import { siteReadyGuard } from "../../graphql/graphql.types.js";
import { permissionGuard } from "../auth/authorization.helper.js";
import { getCurrentAuthor, getLinkedAccounts, getLinkedAuthors, linkAuthorToAccount, setCurrentAuthor, unlinkAuthorFromAccount, } from "./author-account.queries.js";
export const authorAccountResolvers = {
Mutation: {
linkAuthorToAccount: async (_parent, { authorNodeId, accountId }, { siteContext, httpContext }) => {
siteReadyGuard(siteContext);
await permissionGuard(siteContext, httpContext, "site.manageUsers");
await linkAuthorToAccount(siteContext, authorNodeId, accountId);
return true;
},
unlinkAuthorFromAccount: async (_parent, { authorNodeId, accountId }, { siteContext, httpContext }) => {
siteReadyGuard(siteContext);
await permissionGuard(siteContext, httpContext, "site.manageUsers");
await unlinkAuthorFromAccount(siteContext, authorNodeId, accountId);
return true;
},
setCurrentAuthor: async (_parent, { accountId, authorNodeId }, { siteContext, httpContext }) => {
siteReadyGuard(siteContext);
await permissionGuard(siteContext, httpContext, "site.manageUsers");
await setCurrentAuthor(siteContext, accountId, authorNodeId ?? undefined);
return true;
},
},
Account: {
linkedAuthors: async (parent, _args, { siteContext }) => {
return await getLinkedAuthors(siteContext, parent.id);
},
currentAuthor: async (parent, _args, { siteContext }) => {
return (await getCurrentAuthor(siteContext, parent.id)) ?? null;
},
},
Author: {
linkedAccounts: async (parent, _args, { siteContext }) => {
return await getLinkedAccounts(siteContext, parent.nodeId);
},
},
};
//# sourceMappingURL=author-account.resolver.js.map