Class: WebIde::Settings::ExtensionMarketplaceValidator
- Inherits:
-
Object
- Object
- WebIde::Settings::ExtensionMarketplaceValidator
- Includes:
- Messages
- Defined in:
- lib/web_ide/settings/extension_marketplace_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
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_validator.rb', line 10 def self.validate(context) unless context.fetch(:requested_setting_names).intersect?([:vscode_extension_marketplace]) return Gitlab::Fp::Result.ok(context) end context => { settings: Hash => settings } settings => { vscode_extension_marketplace: Hash => vscode_extension_marketplace } # NOTE: We deep_stringify_keys here, so we can still pass keys as symbols during tests. # This is the only place where keys need to be strings, because of the JSON schema # validation, all other places we convert and work with the keys as symbols. errors = validate_against_schema(vscode_extension_marketplace.deep_stringify_keys) if errors.none? Gitlab::Fp::Result.ok(context) else Gitlab::Fp::Result.err(SettingsVscodeExtensionMarketplaceValidationFailed.new(details: errors.join(". "))) end end |