Class: Mamatech::ExternalSdk::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/mamatech_external_sdk/client.rb

Constant Summary collapse

DEFAULT_BASE_URL =
"https://api.fin.io".freeze

Instance Method Summary collapse

Constructor Details

#initialize(base_url: nil, app_code: nil, secret_key: nil) ⇒ Client

Returns a new instance of Client.

Raises:

  • (ArgumentError)


10
11
12
13
14
15
# File 'lib/mamatech_external_sdk/client.rb', line 10

def initialize(base_url: nil, app_code: nil, secret_key: nil)
  @base_url = base_url || ENV.fetch("FIN_BASE_URL", DEFAULT_BASE_URL)
  @app_code = app_code || ENV.fetch("FIN_APP_CODE", "")
  @secret_key = secret_key || ENV.fetch("FIN_SECRET_KEY", "")
  raise ArgumentError, "FIN_APP_CODE and FIN_SECRET_KEY are required" if @app_code.empty? || @secret_key.empty?
end

Instance Method Details

#bulk_create_external_users(users:, skip_existing: false) ⇒ Object



29
30
31
32
33
34
35
36
37
38
# File 'lib/mamatech_external_sdk/client.rb', line 29

def bulk_create_external_users(users:, skip_existing: false)
  request_json("/auth/v1/external/users/bulk", "POST", {
    code: @app_code,
    secretKey: @secret_key,
    users: users,
    options: {
      skipExisting: skip_existing
    }
  })
end

#create_external_user(first_name:, last_name:, third_party_id:, language: nil) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
# File 'lib/mamatech_external_sdk/client.rb', line 17

def create_external_user(first_name:, last_name:, third_party_id:, language: nil)
  payload = {
    firstName: first_name,
    lastName: last_name,
    thirdPartyId: third_party_id,
    code: @app_code,
    secretKey: @secret_key
  }
  payload[:language] = language unless language.nil?
  request_json("/auth/v1/external/user", "POST", payload)
end

#get_context(token:) ⇒ Object



52
53
54
# File 'lib/mamatech_external_sdk/client.rb', line 52

def get_context(token:)
  request_json("/api/v1/external/context", "GET", nil, token: token)
end

#get_messages(token:, limit: 20, offset: 0) ⇒ Object



60
61
62
# File 'lib/mamatech_external_sdk/client.rb', line 60

def get_messages(token:, limit: 20, offset: 0)
  request_json("/api/v1/conversations/external/messages?limit=#{limit}&offset=#{offset}", "GET", nil, token: token)
end

#list_people(token:) ⇒ Object



56
57
58
# File 'lib/mamatech_external_sdk/client.rb', line 56

def list_people(token:)
  request_json("/api/v1/person/all", "GET", nil, token: token)
end

#login_external_user(third_party_id:) ⇒ Object



40
41
42
43
44
45
46
# File 'lib/mamatech_external_sdk/client.rb', line 40

def (third_party_id:)
  request_json("/auth/v1/external/login", "POST", {
    thirdPartyId: third_party_id,
    code: @app_code,
    secretKey: @secret_key
  })
end

#renew_token(token:) ⇒ Object



48
49
50
# File 'lib/mamatech_external_sdk/client.rb', line 48

def renew_token(token:)
  request_json("/api/v1/external/renew", "POST", nil, token: token)
end

#send_message(token:, text:, security_header: nil) ⇒ Object



64
65
66
# File 'lib/mamatech_external_sdk/client.rb', line 64

def send_message(token:, text:, security_header: nil)
  request_stream("/api/v1/conversations/external/message", { text: text }, token: token, security_header: security_header)
end

#submit_secure_input(token:, field:, value:, security_header: nil) ⇒ Object



68
69
70
# File 'lib/mamatech_external_sdk/client.rb', line 68

def submit_secure_input(token:, field:, value:, security_header: nil)
  request_stream("/api/v1/conversations/external/secure-input", { field: field, value: value }, token: token, security_header: security_header)
end