Class: DPay::BlikService

Inherits:
Object
  • Object
show all
Defined in:
lib/dpay/blik/blik_service.rb,
sig/dpay/blik/blik_service.rbs

Instance Method Summary collapse

Constructor Details

#initialize(api) ⇒ BlikService

Returns a new instance of BlikService.

Parameters:



5
6
7
# File 'lib/dpay/blik/blik_service.rb', line 5

def initialize(api)
  @api = api
end

Instance Method Details

#alias(alias_value, alias_type = BlikAliasType::UID) ⇒ BlikAlias

Parameters:

  • alias_value (String)
  • alias_type (String) (defaults to: BlikAliasType::UID)

Returns:



9
10
11
12
13
14
15
16
17
# File 'lib/dpay/blik/blik_service.rb', line 9

def alias(alias_value, alias_type = BlikAliasType::UID)
  data = @api.post_json(
    Internal::BaseUrls::API_PAYMENTS,
    "/api/v1_0/payments/blik/aliases",
    alias_body(alias_value, alias_type)
  )

  BlikAlias.from_api(payload(data))
end

#alias_body(alias_value, alias_type, reason = nil) ⇒ Hash[String, untyped]

Parameters:

  • alias_value (String)
  • alias_type (String)
  • reason (String, nil) (defaults to: nil)

Returns:

  • (Hash[String, untyped])


37
38
39
40
41
42
43
44
45
# File 'lib/dpay/blik/blik_service.rb', line 37

def alias_body(alias_value, alias_type, reason = nil)
  BlikAliasType.assert_valid(alias_type)

  body = { "service" => @api.service, "alias_value" => alias_value, "alias_type" => alias_type }
  body["reason"] = reason unless reason.nil?
  body["checksum"] = @api.checksum.secret_second(@api.service, [alias_value])

  body
end

#payload(data) ⇒ Hash[String, untyped]

Parameters:

  • data (Hash[String, untyped])

Returns:

  • (Hash[String, untyped])


47
48
49
# File 'lib/dpay/blik/blik_service.rb', line 47

def payload(data)
  data["data"].is_a?(Hash) ? data["data"] : {}
end

#recurring_status(alias_value) ⇒ BlikRecurringStatus

Parameters:

  • alias_value (String)

Returns:



26
27
28
29
30
31
32
33
# File 'lib/dpay/blik/blik_service.rb', line 26

def recurring_status(alias_value)
  body = { "service" => @api.service, "alias_value" => alias_value }
  body["checksum"] = @api.checksum.secret_second(@api.service, [alias_value])

  data = @api.post_json(Internal::BaseUrls::API_PAYMENTS, "/api/v1_0/payments/blik/recurring/status", body)

  BlikRecurringStatus.from_api(payload(data))
end

#unregister_alias(alias_value, alias_type = BlikAliasType::UID, reason = nil) ⇒ nil

Parameters:

  • alias_value (String)
  • alias_type (String) (defaults to: BlikAliasType::UID)
  • reason (String, nil) (defaults to: nil)

Returns:

  • (nil)


19
20
21
22
23
24
# File 'lib/dpay/blik/blik_service.rb', line 19

def unregister_alias(alias_value, alias_type = BlikAliasType::UID, reason = nil)
  body = alias_body(alias_value, alias_type, reason)
  @api.post_json(Internal::BaseUrls::API_PAYMENTS, "/api/v1_0/payments/blik/aliases/unregister", body)

  nil
end