Class: WebIde::Settings::ExtensionMarketplaceMetadataValidator

Inherits:
Object
  • Object
show all
Includes:
Messages
Defined in:
lib/web_ide/settings/extension_marketplace_metadata_validator.rb

Constant Summary

Constants included from Messages

Messages::SettingsCurrentSettingsReadFailed, Messages::SettingsEnvironmentVariableOverrideFailed, Messages::SettingsGetSuccessful, Messages::SettingsVscodeExtensionMarketplaceMetadataValidationFailed, Messages::SettingsVscodeExtensionMarketplaceValidationFailed

Class Method Summary collapse

Class Method Details

.validate(context) ⇒ Gitlab::Fp::Result

Parameters:

  • context (Hash)

Returns:



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/web_ide/settings/extension_marketplace_metadata_validator.rb', line 10

def self.validate(context)
  unless context.fetch(:requested_setting_names).include?(:vscode_extension_marketplace_metadata)
    return Gitlab::Fp::Result.ok(context)
  end

  context => { settings: Hash => settings }
  settings => { vscode_extension_marketplace_metadata: Hash =>  }

  validatable_hash = make_hash_validatable_by_json_schemer()
  errors = validate_against_schema(validatable_hash)

  if errors.none?
    Gitlab::Fp::Result.ok(context)
  else
    Gitlab::Fp::Result.err(
      SettingsVscodeExtensionMarketplaceMetadataValidationFailed.new(details: errors.join(". "))
    )
  end
end