validate global relationships

This commit is contained in:
Elliot DeNolf
2020-09-10 19:35:55 -04:00
parent 7fbab16b22
commit 163daf5816
4 changed files with 9 additions and 9 deletions

View File

@@ -1,11 +1,9 @@
const { MissingFieldType, InvalidFieldRelationship } = require('../errors');
const validations = require('./validations');
const sanitizeFields = (collections, fields) => {
const sanitizeFields = (validRelationships, fields) => {
if (!fields) return [];
const validSlugs = collections.map((c) => c.slug);
return fields.map((unsanitizedField) => {
const field = { ...unsanitizedField };
@@ -13,14 +11,14 @@ const sanitizeFields = (collections, fields) => {
if (field.type === 'blocks') {
field.blocks.forEach((blockCollection) => {
sanitizeFields(collections, blockCollection.fields);
sanitizeFields(validRelationships, blockCollection.fields);
});
}
if (field.type === 'relationship') {
const relationships = Array.isArray(field.relationTo) ? field.relationTo : [field.relationTo];
relationships.forEach((relationship) => {
if (!validSlugs.includes(relationship)) {
if (!validRelationships.includes(relationship)) {
throw new InvalidFieldRelationship(field, relationship);
}
});