@neo4j/graphql
Version:
A GraphQL to Cypher query execution layer for Neo4j and JavaScript GraphQL implementations
71 lines • 3.97 kB
JavaScript
"use strict";
/*
* Copyright (c) "Neo4j"
* Neo4j Sweden AB [http://neo4j.com]
*
* This file is part of Neo4j.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.getStaticAuthorizationDefinitions = getStaticAuthorizationDefinitions;
const utils_1 = require("@graphql-tools/utils");
const graphql_1 = require("graphql");
const graphql_compose_1 = require("graphql-compose");
const AttributeAdapter_1 = require("../../../schema-model/attribute/model-adapters/AttributeAdapter");
const definition_collection_1 = require("../../../schema-model/parser/definition-collection");
const parse_attribute_1 = require("../../../schema-model/parser/parse-attribute");
const where_input_1 = require("../../../schema/generation/where-input");
const get_where_fields_1 = require("../../../schema/get-where-fields");
const jwt_payload_1 = require("./jwt-payload");
const static_definitions_1 = require("./static-definitions");
function getStaticAuthorizationDefinitions(userDocument, JWTPayloadDefinition) {
const schema = new graphql_1.GraphQLSchema({});
const authorizationValidateStage = (0, utils_1.astFromEnumType)(static_definitions_1.AUTHORIZATION_VALIDATE_STAGE, schema);
const authorizationValidateOperation = (0, utils_1.astFromEnumType)(static_definitions_1.AUTHORIZATION_VALIDATE_OPERATION, schema);
const authorizationFilterOperation = (0, utils_1.astFromEnumType)(static_definitions_1.AUTHORIZATION_FILTER_OPERATION, schema);
const authenticationOperation = (0, utils_1.astFromEnumType)(static_definitions_1.AUTHENTICATION_OPERATION, schema);
const subscriptionsAuthorizationFilterOperation = (0, utils_1.astFromEnumType)(static_definitions_1.SUBSCRIPTIONS_AUTHORIZATION_FILTER_EVENT, schema);
const ASTs = [
authorizationValidateStage,
authorizationValidateOperation,
authorizationFilterOperation,
authenticationOperation,
subscriptionsAuthorizationFilterOperation,
];
const JWTPayloadWhere = createJWTPayloadWhere(userDocument, schema, JWTPayloadDefinition);
const JWTPayloadWhereAST = (0, utils_1.astFromInputObjectType)(JWTPayloadWhere, schema);
ASTs.push(JWTPayloadWhereAST);
return ASTs;
}
function createJWTPayloadWhere(userDocument, schema, JWTPayloadDefinition) {
const definitionCollection = (0, definition_collection_1.getDefinitionCollection)(userDocument);
const jwtStandardTypeDefinitionFields = (0, jwt_payload_1.getStandardJwtDefinition)(schema).fields || [];
const jwtPayloadDefinitionFields = JWTPayloadDefinition?.fields || [];
const jwtFieldAttributeAdapters = [...jwtStandardTypeDefinitionFields, ...jwtPayloadDefinitionFields].map((field) => new AttributeAdapter_1.AttributeAdapter((0, parse_attribute_1.parseAttribute)(field, definitionCollection)));
const composer = new graphql_compose_1.SchemaComposer();
const inputFieldsType = (0, get_where_fields_1.getWhereFieldsForAttributes)({
attributes: jwtFieldAttributeAdapters,
userDefinedFieldDirectives: undefined,
features: undefined,
ignoreCypherFieldFilters: false,
composer,
});
const inputTC = composer.createInputTC({
name: "JWTPayloadWhere",
fields: inputFieldsType,
});
(0, where_input_1.addLogicalOperatorsToWhereInputType)(inputTC);
return inputTC.getType();
}
//# sourceMappingURL=get-static-auth-definitions.js.map