dscf-banking 0.2.9 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: df271e9f69727201aab1508e782bf5a18e7b59fba9e67dffd2224d92319f9280
4
- data.tar.gz: '0618830ecf6bbab8f90cfffc3da24303cd08788cc8387d42070c4093b9be5b45'
3
+ metadata.gz: 77261771378e8c5903e5f77c66f3919e7528514bd7c8a44070dbe07c61c5aced
4
+ data.tar.gz: 4db5b73418dc1a2625e1d01ba578d39e38655acf41361320735f75792eb986a7
5
5
  SHA512:
6
- metadata.gz: 8ff010dc9f9a04cddbcebf7dcdd83b5ba0b592a6bac40da63422002a7db9e2f9ecede7ae7aef4cc0cafd8ce579c2d8df8c3773f1e4ea8261de8839de353c8788
7
- data.tar.gz: 8e52eeaa335df4fbeb0af438cbb1ac1f9a9c9ee15de8629212ad9bae3ce7eb2984e2936f485f9a5edb052e45ab7bd2738c0cc3fe898dcf5ce5bcb5971ed4d393
6
+ metadata.gz: e23b8ca0fe1ed1ba9320edb49c4d22685547ea1a66fe5bcb7944ffafcb29ba9525107e42efe34f570006dcfe5364e5f70fb4d4be20eb4c9c51c3057f72883eff
7
+ data.tar.gz: 475ee3557215bb66076ad7b5bd414a23c3e41422200bc9c64ebb1b21032c9f737c9407b31f4bbf8745ab562de8444d07d22c01d7c42adab7825830c35140365f
@@ -4,6 +4,42 @@ module Dscf::Banking
4
4
 
5
5
  before_action :find_application
6
6
 
7
+ def index
8
+ super do
9
+ documents = @application.documents
10
+ options = { each_serializer: DocumentSerializer }
11
+ [documents, options]
12
+ end
13
+ end
14
+
15
+ def show
16
+ super do
17
+ document = @application.documents.find(params[:id])
18
+ options = { serializer: DocumentSerializer }
19
+ [document, options]
20
+ end
21
+ end
22
+
23
+ def create
24
+ document = @application.documents.build(model_params)
25
+
26
+ if document.save
27
+ # Attach file if provided
28
+ document.files.attach(params[:document][:file]) if params[:document][:file].present?
29
+
30
+ render json: {
31
+ success: true,
32
+ data: DocumentSerializer.new(document).as_json
33
+ }, status: :created
34
+ else
35
+ render json: {
36
+ success: false,
37
+ error: "Failed to create document",
38
+ errors: document.errors.full_messages
39
+ }, status: :unprocessable_entity
40
+ end
41
+ end
42
+
7
43
  private
8
44
 
9
45
  def find_application
@@ -49,5 +85,9 @@ module Dscf::Banking
49
85
  update: []
50
86
  }
51
87
  end
88
+
89
+ def serializer_class
90
+ Dscf::Banking::DocumentSerializer
91
+ end
52
92
  end
53
93
  end
@@ -9,7 +9,7 @@ module Dscf::Banking
9
9
  belongs_to :assigned_branch_manager, optional: true
10
10
  has_one :account, serializer: AccountSerializer, if: :has_account?
11
11
  has_many :reviews, serializer: Dscf::Core::ReviewSerializer
12
- has_many :documents, serializer: DocumentSerializer
12
+ has_many :documents, serializer: Dscf::Banking::DocumentSerializer
13
13
 
14
14
  def has_account?
15
15
  object.has_account?
@@ -1,12 +1,15 @@
1
1
  module Dscf::Banking
2
2
  class DocumentSerializer < ActiveModel::Serializer
3
- attributes :id, :document_type, :is_verified, :verified_at, :metadata, :created_at, :updated_at, :file_url
3
+ attributes :id, :document_type, :is_verified, :verified_at, :metadata, :file_urls, :created_at, :updated_at
4
4
 
5
- # Remove polymorphic association that causes ActiveStorage issues
6
- # belongs_to :verified_by, polymorphic: true, optional: true
7
-
8
- def file_url
9
- object.file_url
5
+ def file_urls
6
+ return [] unless object.files.attached?
7
+
8
+ object.files.map do |file|
9
+ Rails.application.routes.url_helpers.rails_blob_path(file, only_path: true)
10
+ end
11
+ rescue StandardError
12
+ []
10
13
  end
11
14
  end
12
15
  end
@@ -0,0 +1,23 @@
1
+ Rails.application.config.to_prepare do
2
+ ActiveSupport::Notifications.subscribe("review.created") do |name, start, finish, id, payload|
3
+ reviewable = payload[:reviewable]
4
+
5
+ if reviewable.is_a?(Dscf::Banking::Application)
6
+ reviewable.reload
7
+ review_status = reviewable.review_status
8
+
9
+ status_map = {
10
+ "submitted" => "submitted",
11
+ "under_review" => "under_review",
12
+ "approved" => "approved",
13
+ "rejected" => "rejected",
14
+ "request_modification" => "request_modification"
15
+ }
16
+
17
+ mapped_status = status_map[review_status]
18
+ if mapped_status && reviewable.status != mapped_status
19
+ reviewable.update!(status: mapped_status)
20
+ end
21
+ end
22
+ end
23
+ end
@@ -1,5 +1,5 @@
1
1
  module Dscf
2
2
  module Banking
3
- VERSION = "0.2.9"
3
+ VERSION = "0.3.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dscf-banking
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.9
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eyosiyas Mekbib
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-10-15 00:00:00.000000000 Z
10
+ date: 2025-10-16 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: rails
@@ -482,6 +482,7 @@ files:
482
482
  - app/services/dscf/banking/deposit_service.rb
483
483
  - app/services/dscf/banking/transfer_service.rb
484
484
  - app/services/dscf/banking/withdrawal_service.rb
485
+ - config/initializers/review_callbacks.rb
485
486
  - config/initializers/review_extensions.rb
486
487
  - config/locales/en.yml
487
488
  - config/routes.rb