mirror of
				https://github.com/strapi/strapi.git
				synced 2025-11-03 19:36:20 +00:00 
			
		
		
		
	renamed addSchema to addComponentSchema and fixed a template string
This commit is contained in:
		
							parent
							
								
									be96961ff9
								
							
						
					
					
						commit
						f4519a89a1
					
				@ -21,7 +21,7 @@ const getAllSchemasForContentType = ({ routeInfo, attributes, uniqueName }) => {
 | 
				
			|||||||
  let schemas = {};
 | 
					  let schemas = {};
 | 
				
			||||||
  let componentSchemas = {};
 | 
					  let componentSchemas = {};
 | 
				
			||||||
  // adds a ComponentSchema to the Schemas so it can be used as Ref
 | 
					  // adds a ComponentSchema to the Schemas so it can be used as Ref
 | 
				
			||||||
  const addSchema = (schemaName, schema) => {
 | 
					  const addComponentSchema = (schemaName, schema) => {
 | 
				
			||||||
    if (!Object.keys(schema) || !Object.keys(schema.properties)) {
 | 
					    if (!Object.keys(schema) || !Object.keys(schema.properties)) {
 | 
				
			||||||
      return false;
 | 
					      return false;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -65,7 +65,7 @@ const getAllSchemasForContentType = ({ routeInfo, attributes, uniqueName }) => {
 | 
				
			|||||||
        [`${pascalCase(uniqueName)}LocalizationRequest`]: {
 | 
					        [`${pascalCase(uniqueName)}LocalizationRequest`]: {
 | 
				
			||||||
          required: [...requiredAttributes, 'locale'],
 | 
					          required: [...requiredAttributes, 'locale'],
 | 
				
			||||||
          type: 'object',
 | 
					          type: 'object',
 | 
				
			||||||
          properties: cleanSchemaAttributes(attributesForRequest, { isRequest: true, addSchema }),
 | 
					          properties: cleanSchemaAttributes(attributesForRequest, { isRequest: true, addComponentSchema }),
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -80,7 +80,7 @@ const getAllSchemasForContentType = ({ routeInfo, attributes, uniqueName }) => {
 | 
				
			|||||||
          data: {
 | 
					          data: {
 | 
				
			||||||
            required: requiredAttributes,
 | 
					            required: requiredAttributes,
 | 
				
			||||||
            type: 'object',
 | 
					            type: 'object',
 | 
				
			||||||
            properties: cleanSchemaAttributes(attributesForRequest, { isRequest: true, addSchema }),
 | 
					            properties: cleanSchemaAttributes(attributesForRequest, { isRequest: true, addComponentSchema }),
 | 
				
			||||||
          },
 | 
					          },
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
@ -94,7 +94,7 @@ const getAllSchemasForContentType = ({ routeInfo, attributes, uniqueName }) => {
 | 
				
			|||||||
        type: 'object',
 | 
					        type: 'object',
 | 
				
			||||||
        properties: {
 | 
					        properties: {
 | 
				
			||||||
          id: { type: 'string' },
 | 
					          id: { type: 'string' },
 | 
				
			||||||
          ...cleanSchemaAttributes(attributes, { addSchema }),
 | 
					          ...cleanSchemaAttributes(attributes, { addComponentSchema }),
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
@ -113,7 +113,7 @@ const getAllSchemasForContentType = ({ routeInfo, attributes, uniqueName }) => {
 | 
				
			|||||||
          attributes: {
 | 
					          attributes: {
 | 
				
			||||||
            type: 'object',
 | 
					            type: 'object',
 | 
				
			||||||
            properties: cleanSchemaAttributes(attributes, {
 | 
					            properties: cleanSchemaAttributes(attributes, {
 | 
				
			||||||
              addSchema,
 | 
					              addComponentSchema,
 | 
				
			||||||
              componentSchemaRefName: `#/components/schemas/${pascalCase(
 | 
					              componentSchemaRefName: `#/components/schemas/${pascalCase(
 | 
				
			||||||
                uniqueName
 | 
					                uniqueName
 | 
				
			||||||
              )}ListResponseDataItemLocalized`,
 | 
					              )}ListResponseDataItemLocalized`,
 | 
				
			||||||
@ -127,7 +127,7 @@ const getAllSchemasForContentType = ({ routeInfo, attributes, uniqueName }) => {
 | 
				
			|||||||
          id: { type: 'string' },
 | 
					          id: { type: 'string' },
 | 
				
			||||||
          attributes: {
 | 
					          attributes: {
 | 
				
			||||||
            type: 'object',
 | 
					            type: 'object',
 | 
				
			||||||
            properties: cleanSchemaAttributes(attributes, { addSchema }),
 | 
					            properties: cleanSchemaAttributes(attributes, { addComponentSchema }),
 | 
				
			||||||
          },
 | 
					          },
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
@ -167,7 +167,7 @@ const getAllSchemasForContentType = ({ routeInfo, attributes, uniqueName }) => {
 | 
				
			|||||||
        attributes: {
 | 
					        attributes: {
 | 
				
			||||||
          type: 'object',
 | 
					          type: 'object',
 | 
				
			||||||
          properties: cleanSchemaAttributes(attributes, {
 | 
					          properties: cleanSchemaAttributes(attributes, {
 | 
				
			||||||
            addSchema,
 | 
					            addComponentSchema,
 | 
				
			||||||
            componentSchemaRefName: `#/components/schemas/${pascalCase(
 | 
					            componentSchemaRefName: `#/components/schemas/${pascalCase(
 | 
				
			||||||
              uniqueName
 | 
					              uniqueName
 | 
				
			||||||
            )}ResponseDataObjectLocalized`,
 | 
					            )}ResponseDataObjectLocalized`,
 | 
				
			||||||
@ -181,7 +181,7 @@ const getAllSchemasForContentType = ({ routeInfo, attributes, uniqueName }) => {
 | 
				
			|||||||
        id: { type: 'string' },
 | 
					        id: { type: 'string' },
 | 
				
			||||||
        attributes: {
 | 
					        attributes: {
 | 
				
			||||||
          type: 'object',
 | 
					          type: 'object',
 | 
				
			||||||
          properties: cleanSchemaAttributes(attributes, { addSchema }),
 | 
					          properties: cleanSchemaAttributes(attributes, { addComponentSchema }),
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
				
			|||||||
@ -7,12 +7,12 @@ const pascalCase = require('./pascal-case');
 | 
				
			|||||||
 * @description - Converts types found on attributes to OpenAPI acceptable data types
 | 
					 * @description - Converts types found on attributes to OpenAPI acceptable data types
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * @param {object} attributes - The attributes found on a contentType
 | 
					 * @param {object} attributes - The attributes found on a contentType
 | 
				
			||||||
 * @param {{ typeMap: Map, isRequest: boolean, addSchema: function, componentSchemaRefName: string }} opts
 | 
					 * @param {{ typeMap: Map, isRequest: boolean, addComponentSchema: function, componentSchemaRefName: string }} opts
 | 
				
			||||||
 * @returns Attributes using OpenAPI acceptable data types
 | 
					 * @returns Attributes using OpenAPI acceptable data types
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
const cleanSchemaAttributes = (
 | 
					const cleanSchemaAttributes = (
 | 
				
			||||||
  attributes,
 | 
					  attributes,
 | 
				
			||||||
  { typeMap = new Map(), isRequest = false, addSchema = () => {}, componentSchemaRefName = '' } = {}
 | 
					  { typeMap = new Map(), isRequest = false, addComponentSchema = () => {}, componentSchemaRefName = '' } = {}
 | 
				
			||||||
) => {
 | 
					) => {
 | 
				
			||||||
  const attributesCopy = _.cloneDeep(attributes);
 | 
					  const attributesCopy = _.cloneDeep(attributes);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -100,9 +100,9 @@ const cleanSchemaAttributes = (
 | 
				
			|||||||
          },
 | 
					          },
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
        const refComponentSchema = {
 | 
					        const refComponentSchema = {
 | 
				
			||||||
          $ref: `#/components/schemas/${`${pascalCase(attribute.component)}Component`}`,
 | 
					          $ref: `#/components/schemas/${pascalCase(attribute.component)}Component`,
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
        const componentExists = addSchema(
 | 
					        const componentExists = addComponentSchema(
 | 
				
			||||||
          `${pascalCase(attribute.component)}Component`,
 | 
					          `${pascalCase(attribute.component)}Component`,
 | 
				
			||||||
          rawComponentSchema
 | 
					          rawComponentSchema
 | 
				
			||||||
        );
 | 
					        );
 | 
				
			||||||
@ -125,11 +125,11 @@ const cleanSchemaAttributes = (
 | 
				
			|||||||
            properties: {
 | 
					            properties: {
 | 
				
			||||||
              ...(isRequest ? {} : { id: { type: 'string' } }),
 | 
					              ...(isRequest ? {} : { id: { type: 'string' } }),
 | 
				
			||||||
              __component: { type: 'string' },
 | 
					              __component: { type: 'string' },
 | 
				
			||||||
              ...cleanSchemaAttributes(componentAttributes, { typeMap, isRequest, addSchema }),
 | 
					              ...cleanSchemaAttributes(componentAttributes, { typeMap, isRequest, addComponentSchema }),
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
          };
 | 
					          };
 | 
				
			||||||
          const refComponentSchema = { $ref: `#/components/schemas/${pascalCase(component)}` };
 | 
					          const refComponentSchema = { $ref: `#/components/schemas/${pascalCase(component)}` };
 | 
				
			||||||
          const componentExists = addSchema(pascalCase(component), rawComponentSchema);
 | 
					          const componentExists = addComponentSchema(pascalCase(component), rawComponentSchema);
 | 
				
			||||||
          const finalComponentSchema = componentExists ? refComponentSchema : rawComponentSchema;
 | 
					          const finalComponentSchema = componentExists ? refComponentSchema : rawComponentSchema;
 | 
				
			||||||
          return finalComponentSchema;
 | 
					          return finalComponentSchema;
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user