Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve maintainability #70

Merged
merged 4 commits into from
Jan 14, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
name: Elixir CI

on: [push]
on:
push:
pull_request:

jobs:
build:
Expand All @@ -27,6 +29,8 @@ jobs:
run: mix deps.get
- name: Run tests
run: mix test
- name: Check formatting
run: mix format --check-formatted
- name: Notify slack failure on master branch
if: contains(github.ref, 'master') && failure()
env:
Expand Down
4 changes: 1 addition & 3 deletions config/test.exs
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
import Config

config :ibanity, :applications, [
default: []
]
config :ibanity, :applications, default: []

config :ibanity, :api_url, "https://api.ibanity.com"
config :ibanity, :products, ["xs2a", "consent"]
3 changes: 2 additions & 1 deletion lib/ibanity/api/billing/xs2a/financial_institution_status.ex
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ defmodule Ibanity.Billing.Xs2a.FinancialInstitutionStatus do
worst_status: nil,
best_status: nil

def list(%Request{} = request), do: Client.execute(request, :get, @api_schema_path, "financialInstitutionStatus")
def list(%Request{} = request),
do: Client.execute(request, :get, @api_schema_path, "financialInstitutionStatus")

def key_mapping do
[
Expand Down
9 changes: 6 additions & 3 deletions lib/ibanity/api/billing/xs2a/report.ex
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,12 @@ defmodule Ibanity.Billing.Xs2a.Report do
end: {~w(attributes billingPeriod end), :datetime},
active_accounts_count: {~w(attributes billingPeriod activeAccountsCount), :integer},
inactive_accounts_count: {~w(attributes billingPeriod inactiveAccountsCount), :integer},
payment_initiation_requests_count: {~w(attributes billingPeriod paymentInitiationRequestsCount), :integer},
account_transactions_synchronization_count: {~w(attributes billingPeriod accountTransactionsSynchronizationCount), :integer},
account_details_synchronization_count: {~w(attributes billingPeriod accountDetailsSynchronizationCount), :integer},
payment_initiation_requests_count:
{~w(attributes billingPeriod paymentInitiationRequestsCount), :integer},
account_transactions_synchronization_count:
{~w(attributes billingPeriod accountTransactionsSynchronizationCount), :integer},
account_details_synchronization_count:
{~w(attributes billingPeriod accountDetailsSynchronizationCount), :integer},
accounts_count: {~w(attributes billingPeriod accountsCount), :integer}
]
end
Expand Down
7 changes: 4 additions & 3 deletions lib/ibanity/api/consent/consent.ex
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ defmodule Ibanity.Consent.Consent do

use Ibanity.Resource

@api_schema_path ~w(consent consents)
@api_schema_path ~w(consent consents)
@validate_api_schema_path ~w(consent consent validations)
@revoke_api_schema_path ~w(consent consent revocations)

Expand Down Expand Up @@ -116,13 +116,14 @@ defmodule Ibanity.Consent.Consent do
revoked_at: {~w(attributes revokedAt), :datetime},
data_subject: {~w(attributes dataSubject), :string},
authorized_representative_type: {~w(attributes authorizedRepresentativeType), :string},
authorized_representative_reference: {~w(attributes authorizedRepresentativeReference), :string},
authorized_representative_reference:
{~w(attributes authorizedRepresentativeReference), :string},
data_controller_meta: {~w(attributes dataControllerMeta), :string},
displayed_text: {~w(attributes displayedText), :string},
action_type: {~w(attributes actionType), :string},
terms_reference: {~w(attributes termsReference), :string},
terms_version: {~w(attributes termsVersion), :string},
status: {~w(attributes status), :string},
status: {~w(attributes status), :string}
]
end
end
4 changes: 2 additions & 2 deletions lib/ibanity/api/consent/processing_operation.ex
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ defmodule Ibanity.Consent.ProcessingOperation do

use Ibanity.Resource

@api_schema_path ~w(consent consent processingOperations)
@api_schema_path ~w(consent consent processingOperations)
@revoke_api_schema_path ~w(consent consent processingOperation revocations)

@resource_type "processing_operation"
Expand Down Expand Up @@ -60,7 +60,7 @@ defmodule Ibanity.Consent.ProcessingOperation do
|> Client.execute(:get, @api_schema_path)
end

@doc """
@doc """
[Revokes a processing operation].

Returns `{:ok, processing_operation}` if successful, `{:error, reason}` otherwise.
Expand Down
3 changes: 2 additions & 1 deletion lib/ibanity/api/reporting/xs2a/nbb_report.ex
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ defmodule Ibanity.Reporting.Xs2a.NbbReport do
beginning: {~w(attributes beginning), :datetime},
end: {~w(attributes end), :datetime},
account_information_accounts: {~w(attributes accountInformationAccounts), :string},
account_information_synchronization_count: {~w(attributes accountInformationSynchronizationCount), :string},
account_information_synchronization_count:
{~w(attributes accountInformationSynchronizationCount), :string},
payment_initiation_accounts: {~w(attributes paymentInitiationAccounts), :string},
payment_initiations: {~w(attributes paymentInitiations), :string}
]
Expand Down
12 changes: 10 additions & 2 deletions lib/ibanity/api/sandbox/financial_institution_account.ex
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,11 @@ defmodule Ibanity.Sandbox.FinancialInstitutionAccount do
"""
@deprecated "Use Ibanity.Xs2a.Sandbox.FinancialInstitutionAccount.find/3 instead"
def find(financial_institution_id, user_id, account_id) do
Ibanity.Xs2a.Sandbox.FinancialInstitutionAccount.find(financial_institution_id, user_id, account_id)
Ibanity.Xs2a.Sandbox.FinancialInstitutionAccount.find(
financial_institution_id,
user_id,
account_id
)
end

@doc """
Expand Down Expand Up @@ -142,7 +146,11 @@ defmodule Ibanity.Sandbox.FinancialInstitutionAccount do
"""
@deprecated "Use Ibanity.Xs2a.Sandbox.FinancialInstitutionAccount.delete/3 instead"
def delete(financial_institution_id, user_id, account_id) do
Ibanity.Xs2a.Sandbox.FinancialInstitutionAccount.delete(financial_institution_id, user_id, account_id)
Ibanity.Xs2a.Sandbox.FinancialInstitutionAccount.delete(
financial_institution_id,
user_id,
account_id
)
end

@doc """
Expand Down
1 change: 1 addition & 0 deletions lib/ibanity/api/sandbox/financial_institution_user.ex
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ defmodule Ibanity.Sandbox.FinancialInstitutionUser do
def list(%Request{} = request) do
Ibanity.Xs2a.Sandbox.FinancialInstitutionUser.list(request)
end

def list, do: list(%Request{})

@doc """
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ defmodule Ibanity.Webhooks.Xs2a.BulkPaymentInitiationRequest.AuthorizationComple
id: {~w(id), :string},
created_at: {~w(attributes createdAt), :datetime},
status: {~w(attributes status), :string},
bulk_payment_initiation_request_id: {~w(relationships bulkPaymentInitiationRequest data id), :string}
bulk_payment_initiation_request_id:
{~w(relationships bulkPaymentInitiationRequest data id), :string}
]
end
end
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ defmodule Ibanity.Webhooks.Xs2a.BulkPaymentInitiationRequest.StatusUpdated do
id: {~w(id), :string},
created_at: {~w(attributes createdAt), :datetime},
status: {~w(attributes status), :string},
bulk_payment_initiation_request_id: {~w(relationships bulkPaymentInitiationRequest data id), :string}
bulk_payment_initiation_request_id:
{~w(relationships bulkPaymentInitiationRequest data id), :string}
]
end
end
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ defmodule Ibanity.Webhooks.Xs2a.PeriodicPaymentInitiationRequest.AuthorizationCo
id: {~w(id), :string},
created_at: {~w(attributes createdAt), :datetime},
status: {~w(attributes status), :string},
periodic_payment_initiation_request_id: {~w(relationships periodicPaymentInitiationRequest data id), :string}
periodic_payment_initiation_request_id:
{~w(relationships periodicPaymentInitiationRequest data id), :string}
]
end
end
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ defmodule Ibanity.Webhooks.Xs2a.PeriodicPaymentInitiationRequest.StatusUpdated d
id: {~w(id), :string},
created_at: {~w(attributes createdAt), :datetime},
status: {~w(attributes status), :string},
periodic_payment_initiation_request_id: {~w(relationships periodicPaymentInitiationRequest data id), :string}
periodic_payment_initiation_request_id:
{~w(relationships periodicPaymentInitiationRequest data id), :string}
]
end
end
24 changes: 19 additions & 5 deletions lib/ibanity/api/xs2a/account.ex
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,12 @@ defmodule Ibanity.Xs2a.Account do
{:ok, %Ibanity.Collection{items: [...]}}
"""
def list(%Request{} = request),
do: list(request, Request.get_id(request, :financial_institution_id), Request.get_id(request, :account_information_access_request_id))
do:
list(
request,
Request.get_id(request, :financial_institution_id),
Request.get_id(request, :account_information_access_request_id)
)

@doc false
def list(%Request{} = request, nil, nil) do
Expand Down Expand Up @@ -98,7 +103,13 @@ defmodule Ibanity.Xs2a.Account do
|> Request.id(:id, "")
|> Request.id(:financial_institution_id, financial_institution_id)
|> Request.id(:account_information_access_request_id, account_information_access_request_id)
|> Client.execute(:get, ["xs2a", "customer", "financialInstitution", "accountInformationAccessRequest", "accounts"])
|> Client.execute(:get, [
"xs2a",
"customer",
"financialInstitution",
"accountInformationAccessRequest",
"accounts"
])
end

@doc """
Expand Down Expand Up @@ -231,13 +242,16 @@ defmodule Ibanity.Xs2a.Account do
product: {~w(attributes product), :string},
holder_name: {~w(attributes holderName), :string},
current_balance_changed_at: {~w(attributes currentBalanceChangedAt), :datetime},
current_balance_variation_observed_at: {~w(attributes currentBalanceVariationObservedAt), :datetime},
current_balance_variation_observed_at:
{~w(attributes currentBalanceVariationObservedAt), :datetime},
current_balance_reference_date: {~w(attributes currentBalanceReferenceDate), :datetime},
available_balance_changed_at: {~w(attributes availableBalanceChangedAt), :datetime},
available_balance_variation_observed_at: {~w(attributes availableBalanceVariationObservedAt), :datetime},
available_balance_variation_observed_at:
{~w(attributes availableBalanceVariationObservedAt), :datetime},
available_balance_reference_date: {~w(attributes availableBalanceReferenceDate), :datetime},
authorized_at: {~w(attributes authorizedAt), :datetime},
authorization_expiration_expected_at: {~w(attributes authorizationExpirationExpectedAt), :datetime},
authorization_expiration_expected_at:
{~w(attributes authorizationExpirationExpectedAt), :datetime},
pending_transactions: {~w(relationships pendingTransactions links related), :string},
transactions: {~w(relationships transactions links related), :string},
financial_institution: {~w(relationships financialInstitution links related), :string},
Expand Down
10 changes: 8 additions & 2 deletions lib/ibanity/api/xs2a/account_information_access_request.ex
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,12 @@ defmodule Ibanity.Xs2a.AccountInformationAccessRequest do
skip_ibanity_completion_callback: false,
allow_financial_institution_redirect_uri: false

@api_schema_path ["xs2a", "customer", "financialInstitution", "accountInformationAccessRequests"]
@api_schema_path [
"xs2a",
"customer",
"financialInstitution",
"accountInformationAccessRequests"
]

@doc """
[Creates an account information access request](https://documentation.ibanity.com/xs2a/api#create-account-information-access-request)
Expand Down Expand Up @@ -80,7 +85,8 @@ defmodule Ibanity.Xs2a.AccountInformationAccessRequest do
status: {~w(attributes status), :string},
errors: {~w(attributes errors), :string},
skip_ibanity_completion_callback: {~w(attributes skipIbanityCompletionCallback), :boolean},
allow_financial_institution_redirect_uri: {~w(attributes allowFinancialInstitutionRedirectUri), :boolean},
allow_financial_institution_redirect_uri:
{~w(attributes allowFinancialInstitutionRedirectUri), :boolean}
]
end
end
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,13 @@ defmodule Ibanity.Xs2a.AccountInformationAccessRequestAuthorization do
defstruct id: nil,
status: nil

@api_schema_path ["xs2a", "customer", "financialInstitution", "accountInformationAccessRequest", "authorizations"]
@api_schema_path [
"xs2a",
"customer",
"financialInstitution",
"accountInformationAccessRequest",
"authorizations"
]

@doc """
[Creates an account information access request authorization](https://documentation.ibanity.com/xs2a/api#create-account-information-access-request-authorization)
Expand Down Expand Up @@ -40,7 +46,6 @@ defmodule Ibanity.Xs2a.AccountInformationAccessRequestAuthorization do
|> Client.execute(:post, @api_schema_path, "accountInformationAccessRequestAuthorization")
end


@doc false
def key_mapping do
[
Expand Down
3 changes: 2 additions & 1 deletion lib/ibanity/api/xs2a/bulk_payment_initiation_request.ex
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,8 @@ defmodule Ibanity.Xs2a.BulkPaymentInitiationRequest do
debtor_account_reference_type: {~w(attributes debtorAccountReferenceType), :string},
debtor_account_reference: {~w(attributes debtorAccountReference), :string},
skip_ibanity_completion_callback: {~w(attributes skipIbanityCompletionCallback), :boolean},
allow_financial_institution_redirect_uri: {~w(attributes allowFinancialInstitutionRedirectUri), :boolean},
allow_financial_institution_redirect_uri:
{~w(attributes allowFinancialInstitutionRedirectUri), :boolean},
batch_booking_preferred: {~w(attributes batchBookingPreferred), :boolean},
consent_reference: {~w(attributes consentReference), :string},
redirect_link: {~w(links redirect), :string},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,13 @@ defmodule Ibanity.Xs2a.BulkPaymentInitiationRequestAuthorization do
defstruct id: nil,
status: nil

@api_schema_path ["xs2a", "customer", "financialInstitution", "bulkPaymentInitiationRequest", "authorizations"]
@api_schema_path [
"xs2a",
"customer",
"financialInstitution",
"bulkPaymentInitiationRequest",
"authorizations"
]

@doc """
[Creates an account information access request authorization](https://documentation.ibanity.com/xs2a/api#create-bulk-payment-initiation-request-authorization)
Expand Down Expand Up @@ -40,7 +46,6 @@ defmodule Ibanity.Xs2a.BulkPaymentInitiationRequestAuthorization do
|> Client.execute(:post, @api_schema_path, "bulkPaymentInitiationRequestAuthorization")
end


@doc false
def key_mapping do
[
Expand Down
9 changes: 6 additions & 3 deletions lib/ibanity/api/xs2a/financial_institution.ex
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,8 @@ defmodule Ibanity.Xs2a.FinancialInstitution do
payments_product_types: {~w(attributes paymentsProductTypes), :string},
periodic_payments_product_types: {~w(attributes periodicPaymentsProductTypes), :string},
authorization_models: {~w(attributes authorizationModels), :string},
financial_institution_customer_reference_required: {~w(attributes financialInstitutionCustomerReferenceRequired), :boolean},
financial_institution_customer_reference_required:
{~w(attributes financialInstitutionCustomerReferenceRequired), :boolean},
shared_brand_reference: {~w(attributes sharedBrandReference), :string},
shared_brand_name: {~w(attributes sharedBrandName), :string},
maintenance_from: {~w(attributes maintenanceFrom), :datetime},
Expand All @@ -216,8 +217,10 @@ defmodule Ibanity.Xs2a.FinancialInstitution do
pending_transactions_available: {~w(attributes pendingTransactionsAvailable), :boolean},
bulk_payment_instructions_limit: {~w(attributes bulkPaymentInstructionsLimit), :integer},
expected_authorization_lifetime: {~w(attributes expectedAuthorizationLifetime), :integer},
payment_debtor_account_reference_required: {~w(attributes paymentDebtorAccountReferenceRequired), :boolean},
bulk_payment_debtor_account_reference_required: {~w(attributes bulkPaymentDebtorAccountReferenceRequired), :boolean}
payment_debtor_account_reference_required:
{~w(attributes paymentDebtorAccountReferenceRequired), :boolean},
bulk_payment_debtor_account_reference_required:
{~w(attributes bulkPaymentDebtorAccountReferenceRequired), :boolean}
]
end
end
3 changes: 2 additions & 1 deletion lib/ibanity/api/xs2a/payment_initiation_request.ex
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,8 @@ defmodule Ibanity.Xs2a.PaymentInitiationRequest do
redirect_link: {~w(links redirect), :string},
financial_institution_id: {~w(relationships financialInstitution data id), :string},
skip_ibanity_completion_callback: {~w(attributes skipIbanityCompletionCallback), :boolean},
allow_financial_institution_redirect_uri: {~w(attributes allowFinancialInstitutionRedirectUri), :boolean}
allow_financial_institution_redirect_uri:
{~w(attributes allowFinancialInstitutionRedirectUri), :boolean}
]
end

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,13 @@ defmodule Ibanity.Xs2a.PaymentInitiationRequestAuthorization do
defstruct id: nil,
status: nil

@api_schema_path ["xs2a", "customer", "financialInstitution", "paymentInitiationRequest", "authorizations"]
@api_schema_path [
"xs2a",
"customer",
"financialInstitution",
"paymentInitiationRequest",
"authorizations"
]

@doc """
[Creates an account information access request authorization](https://documentation.ibanity.com/xs2a/api#create-payment-initiation-request-authorization)
Expand Down Expand Up @@ -40,7 +46,6 @@ defmodule Ibanity.Xs2a.PaymentInitiationRequestAuthorization do
|> Client.execute(:post, @api_schema_path, "paymentInitiationRequestAuthorization")
end


@doc false
def key_mapping do
[
Expand Down
16 changes: 14 additions & 2 deletions lib/ibanity/api/xs2a/pending_transaction.ex
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,13 @@ defmodule Ibanity.Xs2a.PendingTransaction do
def list(%Request{} = request) do
request
|> Request.id(:id, "")
|> Client.execute(:get, ["xs2a", "customer", "financialInstitution", "account", "pendingTransactions"])
|> Client.execute(:get, [
"xs2a",
"customer",
"financialInstitution",
"account",
"pendingTransactions"
])
end

@doc """
Expand All @@ -84,7 +90,13 @@ defmodule Ibanity.Xs2a.PendingTransaction do
"""
def find(%Request{} = request) do
request
|> Client.execute(:get, ["xs2a", "customer", "financialInstitution", "account", "pendingTransactions"])
|> Client.execute(:get, [
"xs2a",
"customer",
"financialInstitution",
"account",
"pendingTransactions"
])
end

@doc false
Expand Down
Loading
Loading