Class: Gitlab::Spamcheck::Client
- Inherits:
-
Object
- Object
- Gitlab::Spamcheck::Client
- Includes:
- Spam::SpamConstants
- Defined in:
- lib/gitlab/spamcheck/client.rb
Constant Summary collapse
- DEFAULT_TIMEOUT_SECS =
2
- ACTION_MAPPING =
{ create: ::Spamcheck::Action::CREATE, update: ::Spamcheck::Action::UPDATE }.freeze
- URL_SCHEME_REGEX =
%r{^grpc://|^tls://}
Constants included from Spam::SpamConstants
Spam::SpamConstants::ALLOW, Spam::SpamConstants::BLOCK_USER, Spam::SpamConstants::CONDITIONAL_ALLOW, Spam::SpamConstants::DISALLOW, Spam::SpamConstants::ERROR_TYPE, Spam::SpamConstants::NOOP, Spam::SpamConstants::OVERRIDE_VIA_ALLOW_POSSIBLE_SPAM, Spam::SpamConstants::SUPPORTED_VERDICTS
Instance Method Summary collapse
-
#initialize ⇒ Client
constructor
A new instance of Client.
- #spam?(spammable:, user:, context: {}, extra_features: {}) ⇒ Boolean
Constructor Details
#initialize ⇒ Client
Returns a new instance of Client.
20 21 22 23 24 25 26 27 28 |
# File 'lib/gitlab/spamcheck/client.rb', line 20 def initialize @endpoint_url = Gitlab::CurrentSettings.current_application_settings.spam_check_endpoint_url @creds = client_creds(@endpoint_url) # remove the `grpc://` or 'tls://' as it's only useful to ensure we're expecting to # connect with Spamcheck @endpoint_url = @endpoint_url.sub(URL_SCHEME_REGEX, '') end |
Instance Method Details
#spam?(spammable:, user:, context: {}, extra_features: {}) ⇒ Boolean
30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/gitlab/spamcheck/client.rb', line 30 def spam?(spammable:, user:, context: {}, extra_features: {}) = { 'authorization' => Gitlab::CurrentSettings.spam_check_api_key || '' } protobuf_args = { spammable: spammable, user: user, context: context, extra_features: extra_features } pb, grpc_method = build_protobuf(**protobuf_args) response = grpc_method.call(pb, metadata: ) raise Error, response.error unless response.error.blank? Result.new(response) end |