==> wallet_database warning: unused alias WriteThrough │ 4 │ alias WalletDatabase.WriteThrough │ ~ │ └─ lib/wallet_database/write_through/virtual_iban_persistence.ex:4:3 ==> wallet_reporting warning: variable "approver_id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 26 │ defp validate_approval_authority(approver_id, %RegulatoryTemplate{} = template) do │ ~~~~~~~~~~~ │ └─ (wallet_reporting 0.1.0) lib/wallet_reporting/commands/approve_regulatory_template.ex:26:36: WalletReporting.Commands.ApproveRegulatoryTemplate.validate_approval_authority/2 warning: unused alias TemplateValidationEngine │ 6 │ alias WalletReporting.{RegulatoryTemplate, RegulatoryTemplateStore, TemplateValidationEngine} │ ~ │ └─ lib/wallet_reporting/commands/create_regulatory_template.ex:6:3 warning: unused alias Correlation │ 16 │ alias WalletSharedKernel.{TypedId, Correlation} │ ~ │ └─ lib/wallet_reporting/commands/generate_report.ex:16:3 warning: variable "reviewer_id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 92 │ def submit_for_approval(%__MODULE__{compliance_status: :draft} = template, reviewer_id) do │ ~~~~~~~~~~~ │ └─ (wallet_reporting 0.1.0) lib/wallet_reporting/regulatory_template.ex:92:78: WalletReporting.RegulatoryTemplate.submit_for_approval/2 warning: variable "reviewer_id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 108 │ def reject_template(%__MODULE__{compliance_status: :under_review} = template, reviewer_id) do │ ~~~~~~~~~~~ │ └─ (wallet_reporting 0.1.0) lib/wallet_reporting/regulatory_template.ex:108:81: WalletReporting.RegulatoryTemplate.reject_template/2 warning: unused alias Correlation │ 26 │ alias WalletSharedKernel.Correlation │ ~ │ └─ lib/wallet_reporting/report_job.ex:26:3 warning: unused alias Money │ 13 │ alias WalletSharedKernel.{TypedId, Money, Correlation} │ ~ │ └─ lib/wallet_reporting/report_request.ex:13:3 warning: variable "field" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 227 │ defp validate_rule(data, %{field: field, type: :cross_field_sum, constraints: %{equals_field: sum_field, components: components}}) do │ ~~~~~ │ └─ (wallet_reporting 0.1.0) lib/wallet_reporting/template_validation_engine.ex:227:37: WalletReporting.TemplateValidationEngine.validate_rule/2 warning: variable "field" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 240 │ defp validate_rule(data, %{field: field, type: :date_range, constraints: %{start_field: start_field, end_field: end_field}}) do │ ~~~~~ │ └─ (wallet_reporting 0.1.0) lib/wallet_reporting/template_validation_engine.ex:240:37: WalletReporting.TemplateValidationEngine.validate_rule/2 warning: variable "data" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 306 │ defp validate_cbuae_quarterly_specific(data, errors, warnings) do │ ~~~~ │ └─ (wallet_reporting 0.1.0) lib/wallet_reporting/template_validation_engine.ex:306:42: WalletReporting.TemplateValidationEngine.validate_cbuae_quarterly_specific/3 ==> wallet_transfers warning: def mark_verified/2 has multiple clauses and also declares default values. In such cases, the default values should be defined in a header. Instead of: def foo(:first_clause, b \\ :default) do ... end def foo(:second_clause, b) do ... end one should write: def foo(a, b \\ :default) def foo(:first_clause, b) do ... end def foo(:second_clause, b) do ... end │ 101 │ def mark_verified(%__MODULE__{}, _opts), do: {:error, :invalid_transition} │ ~ │ └─ lib/wallet_transfers/beneficiary_verification.ex:101:7 warning: def mark_rejected/2 has multiple clauses and also declares default values. In such cases, the default values should be defined in a header. Instead of: def foo(:first_clause, b \\ :default) do ... end def foo(:second_clause, b) do ... end one should write: def foo(a, b \\ :default) def foo(:first_clause, b) do ... end def foo(:second_clause, b) do ... end │ 109 │ def mark_rejected(%__MODULE__{}, _reason), do: {:error, :invalid_transition} │ ~ │ └─ lib/wallet_transfers/beneficiary_verification.ex:109:7 warning: def disburse/3 has multiple clauses and also declares default values. In such cases, the default values should be defined in a header. Instead of: def foo(:first_clause, b \\ :default) do ... end def foo(:second_clause, b) do ... end one should write: def foo(a, b \\ :default) def foo(:first_clause, b) do ... end def foo(:second_clause, b) do ... end │ 108 │ def disburse(%__MODULE__{}, _, _), do: {:error, :invalid_transition} │ ~ │ └─ lib/wallet_transfers/cash_out_request.ex:108:7 warning: variable "currency" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 73 │ defp validate_legs(legs, currency) when is_list(legs) and length(legs) > 0 do │ ~~~~~~~~ │ └─ (wallet_transfers 0.1.0) lib/wallet_transfers/commands/submit_split_payment.ex:73:28: WalletTransfers.Commands.SubmitSplitPayment.validate_legs/2 ==> wallet_merchant warning: variable "opts" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 14 │ def execute(pos_txn_id, opts \\ []) do │ ~~~~ │ └─ (wallet_merchant 0.1.0) lib/wallet_merchant/commands/capture_pos_payment.ex:14:27: WalletMerchant.Commands.CapturePosPayment.execute/2 warning: variable "opts" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 14 │ def execute(pos_txn_id, reason, opts \\ []) do │ ~~~~ │ └─ (wallet_merchant 0.1.0) lib/wallet_merchant/commands/reverse_pos_payment.ex:14:35: WalletMerchant.Commands.ReversePosPayment.execute/3 warning: variable "opts" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 14 │ def execute(pos_txn_id, opts \\ []) do │ ~~~~ │ └─ (wallet_merchant 0.1.0) lib/wallet_merchant/commands/settle_pos_payment.ex:14:27: WalletMerchant.Commands.SettlePosPayment.execute/2 ==> wallet_gl warning: unused alias Money │ 49 │ alias WalletSharedKernel.{TypedId, Money} │ ~ │ └─ lib/wallet_gl.ex:49:3 warning: module attribute @rate_limit_delay was set but never used │ 59 │ @rate_limit_delay 1_000 # 1 second delay between requests │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/wallet_gl/adapters/afex_gl_adapter.ex:59: WalletGl.Adapters.AfexGlAdapter (module) warning: module attribute @max_retry_attempts was set but never used │ 58 │ @max_retry_attempts 3 │ ~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/wallet_gl/adapters/afex_gl_adapter.ex:58: WalletGl.Adapters.AfexGlAdapter (module) warning: the behaviour WalletGl.GlAdapter has been declared twice (conflict in function cancel_posting/1 in module WalletGl.Adapters.AfexGlAdapter) │ 1 │ defmodule WalletGl.Adapters.AfexGlAdapter do │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/wallet_gl/adapters/afex_gl_adapter.ex:1: WalletGl.Adapters.AfexGlAdapter (module) warning: the behaviour WalletGl.GlAdapter has been declared twice (conflict in function commit_batch/1 in module WalletGl.Adapters.AfexGlAdapter) │ 1 │ defmodule WalletGl.Adapters.AfexGlAdapter do │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/wallet_gl/adapters/afex_gl_adapter.ex:1: WalletGl.Adapters.AfexGlAdapter (module) warning: the behaviour WalletGl.GlAdapter has been declared twice (conflict in function create_batch/3 in module WalletGl.Adapters.AfexGlAdapter) │ 1 │ defmodule WalletGl.Adapters.AfexGlAdapter do │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/wallet_gl/adapters/afex_gl_adapter.ex:1: WalletGl.Adapters.AfexGlAdapter (module) warning: the behaviour WalletGl.GlAdapter has been declared twice (conflict in function determine_priority/1 in module WalletGl.Adapters.AfexGlAdapter) │ 1 │ defmodule WalletGl.Adapters.AfexGlAdapter do │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/wallet_gl/adapters/afex_gl_adapter.ex:1: WalletGl.Adapters.AfexGlAdapter (module) warning: the behaviour WalletGl.GlAdapter has been declared twice (conflict in function get_posting_status/1 in module WalletGl.Adapters.AfexGlAdapter) │ 1 │ defmodule WalletGl.Adapters.AfexGlAdapter do │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/wallet_gl/adapters/afex_gl_adapter.ex:1: WalletGl.Adapters.AfexGlAdapter (module) warning: the behaviour WalletGl.GlAdapter has been declared twice (conflict in function get_reconciliation_data/3 in module WalletGl.Adapters.AfexGlAdapter) │ 1 │ defmodule WalletGl.Adapters.AfexGlAdapter do │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/wallet_gl/adapters/afex_gl_adapter.ex:1: WalletGl.Adapters.AfexGlAdapter (module) warning: the behaviour WalletGl.GlAdapter has been declared twice (conflict in function health_check/0 in module WalletGl.Adapters.AfexGlAdapter) │ 1 │ defmodule WalletGl.Adapters.AfexGlAdapter do │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/wallet_gl/adapters/afex_gl_adapter.ex:1: WalletGl.Adapters.AfexGlAdapter (module) warning: the behaviour WalletGl.GlAdapter has been declared twice (conflict in function map_account_code/1 in module WalletGl.Adapters.AfexGlAdapter) │ 1 │ defmodule WalletGl.Adapters.AfexGlAdapter do │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/wallet_gl/adapters/afex_gl_adapter.ex:1: WalletGl.Adapters.AfexGlAdapter (module) warning: the behaviour WalletGl.GlAdapter has been declared twice (conflict in function post_entry/2 in module WalletGl.Adapters.AfexGlAdapter) │ 1 │ defmodule WalletGl.Adapters.AfexGlAdapter do │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/wallet_gl/adapters/afex_gl_adapter.ex:1: WalletGl.Adapters.AfexGlAdapter (module) warning: the behaviour WalletGl.GlAdapter has been declared twice (conflict in function validate_account_codes/1 in module WalletGl.Adapters.AfexGlAdapter) │ 1 │ defmodule WalletGl.Adapters.AfexGlAdapter do │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/wallet_gl/adapters/afex_gl_adapter.ex:1: WalletGl.Adapters.AfexGlAdapter (module) warning: the behaviour WalletGl.GlAdapter has been declared twice (conflict in function cancel_posting/1 in module WalletGl.Adapters.TestGlAdapter) │ 1 │ defmodule WalletGl.Adapters.TestGlAdapter do │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/wallet_gl/adapters/test_gl_adapter.ex:1: WalletGl.Adapters.TestGlAdapter (module) warning: the behaviour WalletGl.GlAdapter has been declared twice (conflict in function commit_batch/1 in module WalletGl.Adapters.TestGlAdapter) │ 1 │ defmodule WalletGl.Adapters.TestGlAdapter do │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/wallet_gl/adapters/test_gl_adapter.ex:1: WalletGl.Adapters.TestGlAdapter (module) warning: the behaviour WalletGl.GlAdapter has been declared twice (conflict in function create_batch/3 in module WalletGl.Adapters.TestGlAdapter) │ 1 │ defmodule WalletGl.Adapters.TestGlAdapter do │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/wallet_gl/adapters/test_gl_adapter.ex:1: WalletGl.Adapters.TestGlAdapter (module) warning: the behaviour WalletGl.GlAdapter has been declared twice (conflict in function determine_priority/1 in module WalletGl.Adapters.TestGlAdapter) │ 1 │ defmodule WalletGl.Adapters.TestGlAdapter do │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/wallet_gl/adapters/test_gl_adapter.ex:1: WalletGl.Adapters.TestGlAdapter (module) warning: the behaviour WalletGl.GlAdapter has been declared twice (conflict in function get_posting_status/1 in module WalletGl.Adapters.TestGlAdapter) │ 1 │ defmodule WalletGl.Adapters.TestGlAdapter do │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/wallet_gl/adapters/test_gl_adapter.ex:1: WalletGl.Adapters.TestGlAdapter (module) warning: the behaviour WalletGl.GlAdapter has been declared twice (conflict in function get_reconciliation_data/3 in module WalletGl.Adapters.TestGlAdapter) │ 1 │ defmodule WalletGl.Adapters.TestGlAdapter do │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/wallet_gl/adapters/test_gl_adapter.ex:1: WalletGl.Adapters.TestGlAdapter (module) warning: the behaviour WalletGl.GlAdapter has been declared twice (conflict in function health_check/0 in module WalletGl.Adapters.TestGlAdapter) │ 1 │ defmodule WalletGl.Adapters.TestGlAdapter do │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/wallet_gl/adapters/test_gl_adapter.ex:1: WalletGl.Adapters.TestGlAdapter (module) warning: the behaviour WalletGl.GlAdapter has been declared twice (conflict in function map_account_code/1 in module WalletGl.Adapters.TestGlAdapter) │ 1 │ defmodule WalletGl.Adapters.TestGlAdapter do │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/wallet_gl/adapters/test_gl_adapter.ex:1: WalletGl.Adapters.TestGlAdapter (module) warning: the behaviour WalletGl.GlAdapter has been declared twice (conflict in function post_entry/2 in module WalletGl.Adapters.TestGlAdapter) │ 1 │ defmodule WalletGl.Adapters.TestGlAdapter do │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/wallet_gl/adapters/test_gl_adapter.ex:1: WalletGl.Adapters.TestGlAdapter (module) warning: the behaviour WalletGl.GlAdapter has been declared twice (conflict in function validate_account_codes/1 in module WalletGl.Adapters.TestGlAdapter) │ 1 │ defmodule WalletGl.Adapters.TestGlAdapter do │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/wallet_gl/adapters/test_gl_adapter.ex:1: WalletGl.Adapters.TestGlAdapter (module) warning: WalletGl.Commands.ProcessGlPosting.execute/1 is undefined or private. Did you mean: * execute/2 * execute/3 │ 56 │ ProcessGlPosting.execute(record.gl_posting_id) │ ~ │ └─ (wallet_gl 0.1.0) lib/wallet_gl/commands/post_afex_gl_posting.ex:56:24: WalletGl.Commands.PostAfexGlPosting.attempt_posting/2 warning: unknown key .posting_type in expression: record.posting_type where "record" was given the type: # type: dynamic(%WalletGl.GlPostingRecord{ correlation_id: term(), created_at: term(), entries: term(), error_message: term(), gl_adapter: term(), gl_batch_id: term(), gl_posting_id: term(), gl_transaction_id: term(), journal_reference: term(), max_retries: term(), posted_at: term(), posting_date: term(), retry_after: term(), retry_count: term(), severity: term(), status: term(), updated_at: term() }) # from: lib/wallet_gl/commands/post_afex_gl_posting.ex:99 %WalletGl.GlPostingRecord{} = record typing violation found at: │ 111 │ posting_type: record.posting_type, │ ~~~~~~~~~~~~ │ └─ (wallet_gl 0.1.0) lib/wallet_gl/commands/post_afex_gl_posting.ex:111:30: WalletGl.Commands.PostAfexGlPosting.emit_audit/3 warning: unknown key .source_module in expression: record.source_module where "record" was given the type: # type: dynamic(%WalletGl.GlPostingRecord{ correlation_id: term(), created_at: term(), entries: term(), error_message: term(), gl_adapter: term(), gl_batch_id: term(), gl_posting_id: term(), gl_transaction_id: term(), journal_reference: term(), max_retries: term(), posted_at: term(), posting_date: term(), retry_after: term(), retry_count: term(), severity: term(), status: term(), updated_at: term() }) # from: lib/wallet_gl/commands/post_afex_gl_posting.ex:99 %WalletGl.GlPostingRecord{} = record typing violation found at: │ 112 │ source_module: record.source_module │ ~~~~~~~~~~~~~ │ └─ (wallet_gl 0.1.0) lib/wallet_gl/commands/post_afex_gl_posting.ex:112:31: WalletGl.Commands.PostAfexGlPosting.emit_audit/3 warning: unused alias GlAdapter │ 18 │ alias WalletGl.{GlPostingRecord, GlPostingStore, GlAdapter} │ ~ │ └─ lib/wallet_gl/commands/process_gl_posting.ex:18:3 warning: function event_name/0 required by behaviour WalletEvents.DomainEvent is not implemented (in module WalletGl.Events.GlPostingCreated) │ 1 │ defmodule WalletGl.Events.GlPostingCreated do │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/wallet_gl/events/gl_posting_created.ex:1: WalletGl.Events.GlPostingCreated (module) warning: function event_version/0 required by behaviour WalletEvents.DomainEvent is not implemented (in module WalletGl.Events.GlPostingCreated) │ 1 │ defmodule WalletGl.Events.GlPostingCreated do │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/wallet_gl/events/gl_posting_created.ex:1: WalletGl.Events.GlPostingCreated (module) warning: got "@impl WalletEvents.DomainEvent" for function build/2 but this behaviour does not specify such callback. The known callbacks are: * WalletEvents.DomainEvent.event_name/0 (function) * WalletEvents.DomainEvent.event_version/0 (function) │ 38 │ def build(gl_posting_id, context) do │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/wallet_gl/events/gl_posting_created.ex:38: WalletGl.Events.GlPostingCreated (module) warning: function event_name/0 required by behaviour WalletEvents.DomainEvent is not implemented (in module WalletGl.Events.GlPostingFailed) │ 1 │ defmodule WalletGl.Events.GlPostingFailed do │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/wallet_gl/events/gl_posting_failed.ex:1: WalletGl.Events.GlPostingFailed (module) warning: function event_version/0 required by behaviour WalletEvents.DomainEvent is not implemented (in module WalletGl.Events.GlPostingFailed) │ 1 │ defmodule WalletGl.Events.GlPostingFailed do │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/wallet_gl/events/gl_posting_failed.ex:1: WalletGl.Events.GlPostingFailed (module) warning: got "@impl WalletEvents.DomainEvent" for function build/2 but this behaviour does not specify such callback. The known callbacks are: * WalletEvents.DomainEvent.event_name/0 (function) * WalletEvents.DomainEvent.event_version/0 (function) │ 40 │ def build(gl_posting_id, context) do │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/wallet_gl/events/gl_posting_failed.ex:40: WalletGl.Events.GlPostingFailed (module) warning: function event_name/0 required by behaviour WalletEvents.DomainEvent is not implemented (in module WalletGl.Events.GlPostingProcessed) │ 1 │ defmodule WalletGl.Events.GlPostingProcessed do │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/wallet_gl/events/gl_posting_processed.ex:1: WalletGl.Events.GlPostingProcessed (module) warning: function event_version/0 required by behaviour WalletEvents.DomainEvent is not implemented (in module WalletGl.Events.GlPostingProcessed) │ 1 │ defmodule WalletGl.Events.GlPostingProcessed do │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/wallet_gl/events/gl_posting_processed.ex:1: WalletGl.Events.GlPostingProcessed (module) warning: got "@impl WalletEvents.DomainEvent" for function build/2 but this behaviour does not specify such callback. The known callbacks are: * WalletEvents.DomainEvent.event_name/0 (function) * WalletEvents.DomainEvent.event_version/0 (function) │ 36 │ def build(gl_posting_id, context) do │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/wallet_gl/events/gl_posting_processed.ex:36: WalletGl.Events.GlPostingProcessed (module) warning: function event_name/0 required by behaviour WalletEvents.DomainEvent is not implemented (in module WalletGl.Events.GlPostingRetried) │ 1 │ defmodule WalletGl.Events.GlPostingRetried do │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/wallet_gl/events/gl_posting_retried.ex:1: WalletGl.Events.GlPostingRetried (module) warning: function event_version/0 required by behaviour WalletEvents.DomainEvent is not implemented (in module WalletGl.Events.GlPostingRetried) │ 1 │ defmodule WalletGl.Events.GlPostingRetried do │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/wallet_gl/events/gl_posting_retried.ex:1: WalletGl.Events.GlPostingRetried (module) warning: got "@impl WalletEvents.DomainEvent" for function build/2 but this behaviour does not specify such callback. The known callbacks are: * WalletEvents.DomainEvent.event_name/0 (function) * WalletEvents.DomainEvent.event_version/0 (function) │ 36 │ def build(gl_posting_id, context) do │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/wallet_gl/events/gl_posting_retried.ex:36: WalletGl.Events.GlPostingRetried (module) warning: def mark_in_progress/2 has multiple clauses and also declares default values. In such cases, the default values should be defined in a header. Instead of: def foo(:first_clause, b \\ :default) do ... end def foo(:second_clause, b) do ... end one should write: def foo(a, b \\ :default) def foo(:first_clause, b) do ... end def foo(:second_clause, b) do ... end │ 153 │ def mark_in_progress(%__MODULE__{}, _), do: {:error, :invalid_status_transition} │ ~ │ └─ lib/wallet_gl/gl_posting_record.ex:153:7 warning: def mark_cancelled/2 has multiple clauses and also declares default values. In such cases, the default values should be defined in a header. Instead of: def foo(:first_clause, b \\ :default) do ... end def foo(:second_clause, b) do ... end one should write: def foo(a, b \\ :default) def foo(:first_clause, b) do ... end def foo(:second_clause, b) do ... end │ 226 │ def mark_cancelled(%__MODULE__{}, _), do: {:error, :invalid_status_transition} │ ~ │ └─ lib/wallet_gl/gl_posting_record.ex:226:7 ==> wallet_notifications warning: Logger.warn/2 is deprecated. Use Logger.warning/2 instead │ 101 │ Logger.warn("Transient email delivery failure", │ ~ │ └─ (wallet_notifications 0.1.0) lib/wallet_notifications/adapters/ses_email_adapter.ex:101:16: WalletNotifications.Adapters.SesEmailAdapter.deliver/2 warning: def deliver/2 has multiple clauses and also declares default values. In such cases, the default values should be defined in a header. Instead of: def foo(:first_clause, b \\ :default) do ... end def foo(:second_clause, b) do ... end one should write: def foo(a, b \\ :default) def foo(:first_clause, b) do ... end def foo(:second_clause, b) do ... end │ 117 │ def deliver(%Notification{channel: channel}, _options) do │ ~ │ └─ lib/wallet_notifications/adapters/ses_email_adapter.ex:117:7 warning: variable "notification" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 160 │ def estimate_delivery_time(%Notification{} = notification) do │ ~~~~~~~~~~~~ │ └─ (wallet_notifications 0.1.0) lib/wallet_notifications/adapters/ses_email_adapter.ex:160:48: WalletNotifications.Adapters.SesEmailAdapter.estimate_delivery_time/1 warning: def render/2 has multiple clauses and also declares default values. In such cases, the default values should be defined in a header. Instead of: def foo(:first_clause, b \\ :default) do ... end def foo(:second_clause, b) do ... end one should write: def foo(a, b \\ :default) def foo(:first_clause, b) do ... end def foo(:second_clause, b) do ... end │ 173 │ def render(%__MODULE__{status: status}, _variables) do │ ~ │ └─ lib/wallet_notifications/notification_template.ex:173:7 warning: Logger.warn/2 is deprecated. Use Logger.warning/2 instead │ 123 │ Logger.warn("Transient SMS delivery failure", │ ~ │ └─ (wallet_notifications 0.1.0) lib/wallet_notifications/adapters/twilio_sms_adapter.ex:123:16: WalletNotifications.Adapters.TwilioSmsAdapter.deliver/2 warning: def deliver/2 has multiple clauses and also declares default values. In such cases, the default values should be defined in a header. Instead of: def foo(:first_clause, b \\ :default) do ... end def foo(:second_clause, b) do ... end one should write: def foo(a, b \\ :default) def foo(:first_clause, b) do ... end def foo(:second_clause, b) do ... end │ 139 │ def deliver(%Notification{channel: channel}, _options) do │ ~ │ └─ lib/wallet_notifications/adapters/twilio_sms_adapter.ex:139:7 warning: variable "last_channel" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 115 │ last_channel = List.last(channels_tried) │ ~~~~~~~~~~~~ │ └─ (wallet_notifications 0.1.0) lib/wallet_notifications/multi_channel_delivery_router.ex:115:5: WalletNotifications.MultiChannelDeliveryRouter.try_channels/7 warning: variable "message" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 172 │ {:error, {failure_type, reason, message}} -> │ ~ │ └─ (wallet_notifications 0.1.0) lib/wallet_notifications/multi_channel_delivery_router.ex:172:39: WalletNotifications.MultiChannelDeliveryRouter.try_channels/7 warning: Logger.warn/2 is deprecated. Use Logger.warning/2 instead │ 129 │ Logger.warn("Transient push notification delivery failure", │ ~ │ └─ (wallet_notifications 0.1.0) lib/wallet_notifications/adapters/fcm_push_adapter.ex:129:16: WalletNotifications.Adapters.FcmPushAdapter.deliver/2 warning: def deliver/2 has multiple clauses and also declares default values. In such cases, the default values should be defined in a header. Instead of: def foo(:first_clause, b \\ :default) do ... end def foo(:second_clause, b) do ... end one should write: def foo(a, b \\ :default) def foo(:first_clause, b) do ... end def foo(:second_clause, b) do ... end │ 145 │ def deliver(%Notification{channel: channel}, _options) do │ ~ │ └─ lib/wallet_notifications/adapters/fcm_push_adapter.ex:145:7 warning: variable "notification" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 285 │ defp build_android_config(notification, config, options) do │ ~~~~~~~~~~~~ │ └─ (wallet_notifications 0.1.0) lib/wallet_notifications/adapters/fcm_push_adapter.ex:285:29: WalletNotifications.Adapters.FcmPushAdapter.build_android_config/3 warning: WalletNotifications.DeliveryDlq.list_eligible_for_retry/0 is undefined or private │ 79 │ eligible_records = DeliveryDlq.list_eligible_for_retry() │ ~ │ └─ (wallet_notifications 0.1.0) lib/wallet_notifications/delivery_dlq_worker.ex:79:36: WalletNotifications.DeliveryDlqWorker.process_dlq_records/0 warning: WalletNotifications.DeliveryDlq.mark_delivered/1 is undefined or private │ 102 │ DeliveryDlq.mark_delivered(record.failure_id) │ ~ │ └─ (wallet_notifications 0.1.0) lib/wallet_notifications/delivery_dlq_worker.ex:102:21: WalletNotifications.DeliveryDlqWorker.attempt_delivery/1 warning: WalletNotifications.DeliveryFailureRecord.retry/2 is undefined or private │ 107 │ new_record = DeliveryFailureRecord.retry(record, reason) │ ~ │ └─ (wallet_notifications 0.1.0) lib/wallet_notifications/delivery_dlq_worker.ex:107:44: WalletNotifications.DeliveryDlqWorker.attempt_delivery/1 warning: unknown key .failure_id in expression: record.failure_id where "record" was given the type: # type: dynamic(%WalletNotifications.DeliveryFailureRecord{ attempted_at: term(), channels_tried: term(), failure_message: term(), failure_reason: term(), failure_type: term(), metadata: term(), notification_id: term(), original_channel: term(), record_id: term(), resolved: term(), resolved_at: term(), resolved_by: term(), user_id: term() }) # from: lib/wallet_notifications/delivery_dlq_worker.ex:90 %WalletNotifications.DeliveryFailureRecord{} = record typing violation found at: │ 92 │ failure_id: record.failure_id, │ ~~~~~~~~~~ │ └─ (wallet_notifications 0.1.0) lib/wallet_notifications/delivery_dlq_worker.ex:92:26: WalletNotifications.DeliveryDlqWorker.attempt_delivery/1 warning: unknown key .channel in expression: record.channel where "record" was given the type: # type: dynamic(%WalletNotifications.DeliveryFailureRecord{ attempted_at: term(), channels_tried: term(), failure_message: term(), failure_reason: term(), failure_type: term(), metadata: term(), notification_id: term(), original_channel: term(), record_id: term(), resolved: term(), resolved_at: term(), resolved_by: term(), user_id: term() }) # from: lib/wallet_notifications/delivery_dlq_worker.ex:90 %WalletNotifications.DeliveryFailureRecord{} = record typing violation found at: │ 93 │ channel: record.channel, │ ~~~~~~~ │ └─ (wallet_notifications 0.1.0) lib/wallet_notifications/delivery_dlq_worker.ex:93:23: WalletNotifications.DeliveryDlqWorker.attempt_delivery/1 warning: unknown key .retry_count in expression: record.retry_count where "record" was given the type: # type: dynamic(%WalletNotifications.DeliveryFailureRecord{ attempted_at: term(), channels_tried: term(), failure_message: term(), failure_reason: term(), failure_type: term(), metadata: term(), notification_id: term(), original_channel: term(), record_id: term(), resolved: term(), resolved_at: term(), resolved_by: term(), user_id: term() }) # from: lib/wallet_notifications/delivery_dlq_worker.ex:90 %WalletNotifications.DeliveryFailureRecord{} = record typing violation found at: │ 94 │ retry_count: record.retry_count │ ~~~~~~~~~~~ │ └─ (wallet_notifications 0.1.0) lib/wallet_notifications/delivery_dlq_worker.ex:94:27: WalletNotifications.DeliveryDlqWorker.attempt_delivery/1 warning: unknown key .failure_id in expression: record.failure_id where "record" was given the type: # type: dynamic(%WalletNotifications.DeliveryFailureRecord{ attempted_at: term(), channels_tried: term(), failure_message: term(), failure_reason: term(), failure_type: term(), metadata: term(), notification_id: term(), original_channel: term(), record_id: term(), resolved: term(), resolved_at: term(), resolved_by: term(), user_id: term() }) # from: lib/wallet_notifications/delivery_dlq_worker.ex:90 %WalletNotifications.DeliveryFailureRecord{} = record typing violation found at: │ 102 │ DeliveryDlq.mark_delivered(record.failure_id) │ ~~~~~~~~~~ │ └─ (wallet_notifications 0.1.0) lib/wallet_notifications/delivery_dlq_worker.ex:102:43: WalletNotifications.DeliveryDlqWorker.attempt_delivery/1 warning: unknown key .channel in expression: record.channel where "record" was given the type: # type: dynamic(%WalletNotifications.DeliveryFailureRecord{ attempted_at: term(), channels_tried: term(), failure_message: term(), failure_reason: term(), failure_type: term(), metadata: term(), notification_id: term(), original_channel: term(), record_id: term(), resolved: term(), resolved_at: term(), resolved_by: term(), user_id: term() }) # from: lib/wallet_notifications/delivery_dlq_worker.ex:113 %WalletNotifications.DeliveryFailureRecord{} = record typing violation found at: │ 115 │ channels_to_try = build_channel_sequence(record.channel) │ ~~~~~~~ │ └─ (wallet_notifications 0.1.0) lib/wallet_notifications/delivery_dlq_worker.ex:115:53: WalletNotifications.DeliveryDlqWorker.try_channel_fallback/1 ==> wallet_integrations warning: variable "request" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 238 │ defp handle_sandbox_refund(request) do │ ~~~~~~~ │ └─ (wallet_integrations 0.1.0) lib/wallet_integrations/adapters/afex_adapter.ex:238:30: WalletIntegrations.Adapters.AfexAdapter.handle_sandbox_refund/1 warning: unused alias AfexSchema │ 27 │ alias WalletIntegrations.Funding.Schemas.AfexSchema │ ~ │ └─ lib/wallet_integrations/adapters/afex_adapter.ex:27:3 warning: variable "request" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 238 │ defp handle_sandbox_refund(request) do │ ~~~~~~~ │ └─ (wallet_integrations 0.1.0) lib/wallet_integrations/adapters/aani_adapter.ex:238:30: WalletIntegrations.Adapters.AaniAdapter.handle_sandbox_refund/1 warning: unused alias AaniSchema │ 27 │ alias WalletIntegrations.Funding.Schemas.AaniSchema │ ~ │ └─ lib/wallet_integrations/adapters/aani_adapter.ex:27:3 ==> wallet_wps warning: unused alias SalaryCredit │ 32 │ alias WalletWps.{SalaryCredit, SalaryCreditStore, SalaryCreditException, │ ~ │ └─ lib/wallet_wps/commands/batch_post_salary_credits.ex:32:3 ==> wallet_cards warning: def tokenize/2 has multiple clauses and also declares default values. In such cases, the default values should be defined in a header. Instead of: def foo(:first_clause, b \\ :default) do ... end def foo(:second_clause, b) do ... end one should write: def foo(a, b \\ :default) def foo(:first_clause, b) do ... end def foo(:second_clause, b) do ... end │ 59 │ def tokenize(_, _), do: {:error, :invalid_pan} │ ~ │ └─ lib/wallet_cards/card_tokenizer.ex:59:7 ==> wallet_disputes warning: variable "opts" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 24 │ def execute(refund_id, approver_id, approved_amount, opts \\ []) do │ ~~~~ │ └─ (wallet_disputes 0.1.0) lib/wallet_disputes/commands/approve_refund.ex:24:56: WalletDisputes.Commands.ApproveRefund.execute/4 warning: variable "dispute" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 115 │ defp process_dispute_sla(dispute, :on_track, _existing_alerts), do: :ok │ ~~~~~~~ │ └─ (wallet_disputes 0.1.0) lib/wallet_disputes/sla_monitor.ex:115:28: WalletDisputes.SlaMonitor.process_dispute_sla/3 ==> wallet_web warning: WalletWeb.Plugs.RequireRole.UnauthorizedError.exception/1 is undefined (module WalletWeb.Plugs.RequireRole.UnauthorizedError is not available or is yet to be defined) │ 20 │ raise WalletWeb.Plugs.RequireRole.UnauthorizedError │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ (wallet_web 0.1.0) lib/wallet_web/live/customer/settings/settings_live.ex:20: WalletWeb.Live.Customer.Settings.SettingsLive.mount/3 warning: variable "session_id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 123 │ def handle_event("revoke_session", %{"session_id" => session_id}, socket) do │ ~~~~~~~~~~ │ └─ (wallet_web 0.1.0) lib/wallet_web/live/customer/settings/security_settings_live.ex:123:56: WalletWeb.Live.Customer.Settings.SecuritySettingsLive.handle_event/3 warning: variable "user_id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 395 │ defp load_security_data(user_id) do │ ~~~~~~~ │ └─ (wallet_web 0.1.0) lib/wallet_web/live/customer/settings/security_settings_live.ex:395:27: WalletWeb.Live.Customer.Settings.SecuritySettingsLive.load_security_data/1 warning: WalletWeb.Plugs.RequireRole.UnauthorizedError.exception/1 is undefined (module WalletWeb.Plugs.RequireRole.UnauthorizedError is not available or is yet to be defined) │ 22 │ raise WalletWeb.Plugs.RequireRole.UnauthorizedError │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ (wallet_web 0.1.0) lib/wallet_web/live/customer/settings/security_settings_live.ex:22: WalletWeb.Live.Customer.Settings.SecuritySettingsLive.mount/3 warning: variable "limit_type" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 43 │ def handle_event("request_limit_increase", %{"limit_type" => limit_type}, socket) do │ ~~~~~~~~~~ │ └─ (wallet_web 0.1.0) lib/wallet_web/live/customer/settings/limits_live.ex:43:64: WalletWeb.Live.Customer.Settings.LimitsLive.handle_event/3 warning: variable "user_id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 306 │ defp load_user_limits(user_id) do │ ~~~~~~~ │ └─ (wallet_web 0.1.0) lib/wallet_web/live/customer/settings/limits_live.ex:306:25: WalletWeb.Live.Customer.Settings.LimitsLive.load_user_limits/1 warning: WalletWeb.Plugs.RequireRole.UnauthorizedError.exception/1 is undefined (module WalletWeb.Plugs.RequireRole.UnauthorizedError is not available or is yet to be defined) │ 21 │ raise WalletWeb.Plugs.RequireRole.UnauthorizedError │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ (wallet_web 0.1.0) lib/wallet_web/live/customer/settings/limits_live.ex:21: WalletWeb.Live.Customer.Settings.LimitsLive.mount/3 warning: function get_user_id/1 is unused │ 160 │ defp get_user_id(socket) do │ ~ │ └─ lib/wallet_web/live/customer/reports_live.ex:160:8: WalletWeb.Live.Customer.ReportsLive (module) warning: unused alias TypedId │ 11 │ alias WalletSharedKernel.TypedId │ ~ │ └─ lib/wallet_web/live/customer/reports_live.ex:11:3 warning: variable "user_id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 360 │ defp load_user_devices(user_id) do │ ~~~~~~~ │ └─ (wallet_web 0.1.0) lib/wallet_web/live/customer/settings/device_settings_live.ex:360:26: WalletWeb.Live.Customer.Settings.DeviceSettingsLive.load_user_devices/1 warning: variable "user_id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 405 │ defp load_user_sessions(user_id) do │ ~~~~~~~ │ └─ (wallet_web 0.1.0) lib/wallet_web/live/customer/settings/device_settings_live.ex:405:27: WalletWeb.Live.Customer.Settings.DeviceSettingsLive.load_user_sessions/1 warning: variable "claims" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 429 │ defp get_current_session_id(claims) do │ ~~~~~~ │ └─ (wallet_web 0.1.0) lib/wallet_web/live/customer/settings/device_settings_live.ex:429:31: WalletWeb.Live.Customer.Settings.DeviceSettingsLive.get_current_session_id/1 warning: WalletWeb.Plugs.RequireRole.UnauthorizedError.exception/1 is undefined (module WalletWeb.Plugs.RequireRole.UnauthorizedError is not available or is yet to be defined) │ 21 │ raise WalletWeb.Plugs.RequireRole.UnauthorizedError │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ (wallet_web 0.1.0) lib/wallet_web/live/customer/settings/device_settings_live.ex:21: WalletWeb.Live.Customer.Settings.DeviceSettingsLive.mount/3 warning: WalletWeb.Plugs.RequireRole.UnauthorizedError.exception/1 is undefined (module WalletWeb.Plugs.RequireRole.UnauthorizedError is not available or is yet to be defined) │ 19 │ raise WalletWeb.Plugs.RequireRole.UnauthorizedError │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ (wallet_web 0.1.0) lib/wallet_web/live/customer/settings/display_settings_live.ex:19: WalletWeb.Live.Customer.Settings.DisplaySettingsLive.mount/3 warning: WalletWeb.Plugs.RequireRole.UnauthorizedError.exception/1 is undefined (module WalletWeb.Plugs.RequireRole.UnauthorizedError is not available or is yet to be defined) │ 19 │ raise WalletWeb.Plugs.RequireRole.UnauthorizedError │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ (wallet_web 0.1.0) lib/wallet_web/live/customer/settings/connected_accounts_live.ex:19: WalletWeb.Live.Customer.Settings.ConnectedAccountsLive.mount/3 warning: WalletMerchant.MerchantStore.list_all/0 is undefined or private │ 177 │ merchants = MerchantStore.list_all() │ ~ │ └─ (wallet_web 0.1.0) lib/wallet_web/live/customer/merchant_portal_live.ex:177:31: WalletWeb.Live.Customer.MerchantPortalLive.mount/3 warning: unused alias MerchantStore │ 14 │ alias WalletMerchant.{MerchantStore, PosTransactionStore} │ ~ │ └─ lib/wallet_web/live/customer/merchant_transactions_live.ex:14:3 warning: WalletMerchant.PosTransactionStore.list_all/0 is undefined or private │ 155 │ transactions = PosTransactionStore.list_all() │ ~ │ └─ (wallet_web 0.1.0) lib/wallet_web/live/customer/merchant_transactions_live.ex:155:40: WalletWeb.Live.Customer.MerchantTransactionsLive.mount/3 warning: unused alias ReportCatalog │ 10 │ alias WalletReporting.{ReportCatalog, ReportRequestStore, Commands.RequestReport, Commands.GenerateReport} │ ~ │ └─ lib/wallet_web/live/admin/reports_admin_live.ex:10:3 warning: unused alias ReportRequestStore │ 10 │ alias WalletReporting.{ReportCatalog, ReportRequestStore, Commands.RequestReport, Commands.GenerateReport} │ ~ │ └─ lib/wallet_web/live/admin/reports_admin_live.ex:10:3 warning: unused alias TypedId │ 11 │ alias WalletSharedKernel.TypedId │ ~ │ └─ lib/wallet_web/live/admin/reports_admin_live.ex:11:3 warning: variable "params" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 180 │ def handle_event("create_qr", params, socket) do │ ~~~~~~ │ └─ (wallet_web 0.1.0) lib/wallet_web/live/customer/merchant_qr_codes_live.ex:180:33: WalletWeb.Live.Customer.MerchantQrCodesLive.handle_event/3 warning: unused alias GenerateMerchantQrCode │ 14 │ alias WalletMerchant.{MerchantQrCodeStore, GenerateMerchantQrCode} │ ~ │ └─ lib/wallet_web/live/customer/merchant_qr_codes_live.ex:14:3 warning: WalletMerchant.MerchantQrCodeStore.list_all/0 is undefined or private │ 160 │ qr_codes = MerchantQrCodeStore.list_all() │ ~ │ └─ (wallet_web 0.1.0) lib/wallet_web/live/customer/merchant_qr_codes_live.ex:160:36: WalletWeb.Live.Customer.MerchantQrCodesLive.mount/3 warning: function format_outcome/1 is unused │ 216 │ defp format_outcome(:customer_favor), do: "Customer Favor" │ ~ │ └─ lib/wallet_web/live/admin/disputes_admin_live.ex:216:8: WalletWeb.Live.Admin.DisputesAdminLive (module) warning: unused alias Commands │ 15 │ alias WalletDisputes.{DisputeStore, Commands} │ ~ │ └─ lib/wallet_web/live/admin/disputes_admin_live.ex:15:3 warning: variable "user_id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 259 │ defp load_profile_data(user_id) do │ ~~~~~~~ │ └─ (wallet_web 0.1.0) lib/wallet_web/live/customer/settings/profile_settings_live.ex:259:26: WalletWeb.Live.Customer.Settings.ProfileSettingsLive.load_profile_data/1 warning: WalletWeb.Plugs.RequireRole.UnauthorizedError.exception/1 is undefined (module WalletWeb.Plugs.RequireRole.UnauthorizedError is not available or is yet to be defined) │ 21 │ raise WalletWeb.Plugs.RequireRole.UnauthorizedError │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ (wallet_web 0.1.0) lib/wallet_web/live/customer/settings/profile_settings_live.ex:21: WalletWeb.Live.Customer.Settings.ProfileSettingsLive.mount/3 warning: variable "user_id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 376 │ defp load_notification_preferences(user_id) do │ ~~~~~~~ │ └─ (wallet_web 0.1.0) lib/wallet_web/live/customer/settings/notification_settings_live.ex:376:38: WalletWeb.Live.Customer.Settings.NotificationSettingsLive.load_notification_preferences/1 warning: variable "preferences" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 411 │ defp save_notification_preferences(user_id, preferences) do │ ~~~~~~~~~~~ │ └─ (wallet_web 0.1.0) lib/wallet_web/live/customer/settings/notification_settings_live.ex:411:47: WalletWeb.Live.Customer.Settings.NotificationSettingsLive.save_notification_preferences/2 warning: variable "user_id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 411 │ defp save_notification_preferences(user_id, preferences) do │ ~~~~~~~ │ └─ (wallet_web 0.1.0) lib/wallet_web/live/customer/settings/notification_settings_live.ex:411:38: WalletWeb.Live.Customer.Settings.NotificationSettingsLive.save_notification_preferences/2 warning: WalletWeb.Plugs.RequireRole.UnauthorizedError.exception/1 is undefined (module WalletWeb.Plugs.RequireRole.UnauthorizedError is not available or is yet to be defined) │ 22 │ raise WalletWeb.Plugs.RequireRole.UnauthorizedError │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ (wallet_web 0.1.0) lib/wallet_web/live/customer/settings/notification_settings_live.ex:22: WalletWeb.Live.Customer.Settings.NotificationSettingsLive.mount/3 warning: WalletWeb.Plugs.RequireRole.UnauthorizedError.exception/1 is undefined (module WalletWeb.Plugs.RequireRole.UnauthorizedError is not available or is yet to be defined) │ 19 │ raise WalletWeb.Plugs.RequireRole.UnauthorizedError │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ (wallet_web 0.1.0) lib/wallet_web/live/customer/settings/autopay_live.ex:19: WalletWeb.Live.Customer.Settings.AutopayLive.mount/3 warning: variable "user_id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 360 │ defp load_language_settings(user_id) do │ ~~~~~~~ │ └─ (wallet_web 0.1.0) lib/wallet_web/live/customer/settings/language_settings_live.ex:360:31: WalletWeb.Live.Customer.Settings.LanguageSettingsLive.load_language_settings/1 warning: variable "settings" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 371 │ defp save_language_settings(user_id, settings) do │ ~~~~~~~~ │ └─ (wallet_web 0.1.0) lib/wallet_web/live/customer/settings/language_settings_live.ex:371:40: WalletWeb.Live.Customer.Settings.LanguageSettingsLive.save_language_settings/2 warning: variable "user_id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 371 │ defp save_language_settings(user_id, settings) do │ ~~~~~~~ │ └─ (wallet_web 0.1.0) lib/wallet_web/live/customer/settings/language_settings_live.ex:371:31: WalletWeb.Live.Customer.Settings.LanguageSettingsLive.save_language_settings/2 warning: WalletWeb.Plugs.RequireRole.UnauthorizedError.exception/1 is undefined (module WalletWeb.Plugs.RequireRole.UnauthorizedError is not available or is yet to be defined) │ 22 │ raise WalletWeb.Plugs.RequireRole.UnauthorizedError │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ (wallet_web 0.1.0) lib/wallet_web/live/customer/settings/language_settings_live.ex:22: WalletWeb.Live.Customer.Settings.LanguageSettingsLive.mount/3 warning: variable "user_id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 466 │ defp load_privacy_settings(user_id) do │ ~~~~~~~ │ └─ (wallet_web 0.1.0) lib/wallet_web/live/customer/settings/privacy_settings_live.ex:466:30: WalletWeb.Live.Customer.Settings.PrivacySettingsLive.load_privacy_settings/1 warning: variable "settings" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 476 │ defp save_privacy_settings(user_id, settings) do │ ~~~~~~~~ │ └─ (wallet_web 0.1.0) lib/wallet_web/live/customer/settings/privacy_settings_live.ex:476:39: WalletWeb.Live.Customer.Settings.PrivacySettingsLive.save_privacy_settings/2 warning: variable "user_id" is unused (if the variable is not meant to be used, prefix it with an underscore) │ 476 │ defp save_privacy_settings(user_id, settings) do │ ~~~~~~~ │ └─ (wallet_web 0.1.0) lib/wallet_web/live/customer/settings/privacy_settings_live.ex:476:30: WalletWeb.Live.Customer.Settings.PrivacySettingsLive.save_privacy_settings/2 warning: WalletWeb.Plugs.RequireRole.UnauthorizedError.exception/1 is undefined (module WalletWeb.Plugs.RequireRole.UnauthorizedError is not available or is yet to be defined) │ 22 │ raise WalletWeb.Plugs.RequireRole.UnauthorizedError │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ (wallet_web 0.1.0) lib/wallet_web/live/customer/settings/privacy_settings_live.ex:22: WalletWeb.Live.Customer.Settings.PrivacySettingsLive.mount/3 ==> wallet_web Running ExUnit with seed: 267579, max_cases: 8 ............ Finished in 0.4 seconds (0.1s async, 0.3s sync) 12 tests, 0 failures