Module: EasyCompliance::Client

Defined in:
lib/easy_compliance/client.rb

Overview

Defined Under Namespace

Classes: Error

Constant Summary collapse

HEADERS =
{
  'Content-Type': 'application/x-www-form-urlencoded',
}

Class Method Summary collapse

Class Method Details

.check_now(record:, value:) ⇒ EasyCompliance::Result

check if record is currently on a sanctions list



12
13
14
15
# File 'lib/easy_compliance/client.rb', line 12

def check_now(record:, value:)
  ref = EasyCompliance::Ref.for_record(record)
  post(method: 1, ref: ref, name: value)
end

.fetch_listEasyCompliance::Result

get matches of last 24 hours



26
27
28
# File 'lib/easy_compliance/client.rb', line 26

def fetch_list
  post(method: 3)
end

.post(**body) ⇒ EasyCompliance::Result



35
36
37
38
39
40
41
42
43
44
45
# File 'lib/easy_compliance/client.rb', line 35

def post(**body)
  url = EasyCompliance.api_url or raise Error, "must set api_url"
  body[:api_key] = EasyCompliance.api_key or raise Error, "must set api_key"

  res = Excon.post(url, body: URI.encode_www_form(body), headers: HEADERS)
  res.status < 300 or raise Error, "#{res.status}: #{res.body}"

  EasyCompliance::Result.new(status: res.status, body: res.body)
rescue Excon::Error => e
  raise Error, "Network error: #{e.class.name} - #{e.message}"
end

.submit(record:, value:) ⇒ EasyCompliance::Result

like ‘#check_now`, but also adds to list for future automatic checks



19
20
21
22
# File 'lib/easy_compliance/client.rb', line 19

def submit(record:, value:)
  ref = EasyCompliance::Ref.for_record(record)
  post(method: 2, ref: ref, name: value)
end