func validateFile()

in code/go/internal/validator/folder_item_spec.go [40:62]


func validateFile(spec spectypes.ItemSpec, fsys fs.FS, itemPath string) specerrors.ValidationErrors {
	err := validateMaxSize(fsys, itemPath, spec)
	if err != nil {
		return specerrors.ValidationErrors{specerrors.NewStructuredError(err, specerrors.UnassignedCode)}
	}
	if mediaType := spec.ContentMediaType(); mediaType != nil {
		err := validateContentType(fsys, itemPath, *mediaType)
		if err != nil {
			return specerrors.ValidationErrors{specerrors.NewStructuredError(err, specerrors.UnassignedCode)}
		}
		err = validateContentTypeSize(fsys, itemPath, *mediaType, spec)
		if err != nil {
			return specerrors.ValidationErrors{specerrors.NewStructuredError(err, specerrors.UnassignedCode)}
		}
	}

	errs := spec.ValidateSchema(fsys, itemPath)
	if len(errs) > 0 {
		return errs
	}

	return nil
}