| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- import { ResolveField, Resolver } from '@nestjs/graphql';
- import { Allow, PermissionDefinition, VendurePlugin } from '@vendure/core';
- import gql from 'graphql-tag';
- export const transactions = new PermissionDefinition({
- name: 'Transactions',
- description: 'Allows reading of transaction data',
- });
- @Resolver('Product')
- export class ProductEntityResolver {
- @Allow(transactions.Permission)
- @ResolveField()
- transactions() {
- return [
- { id: 1, amount: 100, description: 'credit' },
- { id: 2, amount: -50, description: 'debit' },
- ];
- }
- }
- @VendurePlugin({
- adminApiExtensions: {
- resolvers: [ProductEntityResolver],
- schema: gql`
- extend type Query {
- transactions: [Transaction!]!
- }
- extend type Product {
- transactions: [Transaction!]!
- }
- type Transaction implements Node {
- id: ID!
- amount: Int!
- description: String!
- }
- `,
- },
- configuration: config => {
- config.authOptions.customPermissions.push(transactions);
- return config;
- },
- })
- export class ProtectedFieldsPlugin {}
|