|
1 | 1 | require 'fetchers/service_credential_binding_fetcher' |
| 2 | +require 'fetchers/service_credential_binding_list_fetcher' |
| 3 | +require 'presenters/v3/service_credential_binding_presenter' |
2 | 4 |
|
3 | 5 | class ServiceCredentialBindingsController < ApplicationController |
4 | | - before_action :ensure_service_credential_binding_exists! |
5 | | - before_action :ensure_user_has_access! |
| 6 | + def index |
| 7 | + results = list_fetcher.fetch(space_guids: space_guids) |
| 8 | + |
| 9 | + presenter = Presenters::V3::PaginatedListPresenter.new( |
| 10 | + presenter: Presenters::V3::ServiceCredentialBindingPresenter, |
| 11 | + paginated_result: SequelPaginator.new.get_page(results, pagination_options), |
| 12 | + path: '/v3' + service_credential_bindings_path |
| 13 | + ) |
| 14 | + |
| 15 | + render status: :ok, json: presenter |
| 16 | + end |
6 | 17 |
|
7 | 18 | def show |
| 19 | + ensure_service_credential_binding_is_accessible! |
8 | 20 | render status: :ok, json: serialized |
9 | 21 | end |
10 | 22 |
|
11 | 23 | private |
12 | 24 |
|
13 | | - def serialized |
14 | | - { |
15 | | - guid: service_credential_binding.guid, |
16 | | - type: service_credential_binding.type |
17 | | - } |
| 25 | + def service_credential_binding |
| 26 | + @service_credential_binding ||= fetcher.fetch(hashed_params[:guid], space_guids: space_guids) |
18 | 27 | end |
19 | 28 |
|
20 | | - def ensure_service_credential_binding_exists! |
21 | | - not_found! unless service_credential_binding_exists? |
| 29 | + def space_guids |
| 30 | + if permission_queryer.can_read_globally? |
| 31 | + :all |
| 32 | + else |
| 33 | + permission_queryer.readable_space_guids |
| 34 | + end |
22 | 35 | end |
23 | 36 |
|
24 | | - def ensure_user_has_access! |
25 | | - not_found! unless allowed_to_access_space? |
| 37 | + def pagination_options |
| 38 | + query_params_with_order_by = query_params.reverse_merge(order_by: :created_at) |
| 39 | + ListMessage.from_params(query_params_with_order_by, []).pagination_options |
26 | 40 | end |
27 | 41 |
|
28 | | - def not_found! |
29 | | - resource_not_found!(:service_credential_binding) |
| 42 | + def serialized |
| 43 | + Presenters::V3::ServiceCredentialBindingPresenter.new(service_credential_binding).to_hash |
30 | 44 | end |
31 | 45 |
|
32 | | - def service_credential_binding |
33 | | - @service_credential_binding ||= fetcher.fetch(hashed_params[:guid]) |
| 46 | + def ensure_service_credential_binding_is_accessible! |
| 47 | + not_found! unless service_credential_binding_exists? |
34 | 48 | end |
35 | 49 |
|
36 | | - def fetcher |
37 | | - @fetcher ||= VCAP::CloudController::ServiceCredentialBindingFetcher.new |
| 50 | + def not_found! |
| 51 | + resource_not_found!(:service_credential_binding) |
38 | 52 | end |
39 | 53 |
|
40 | 54 | def service_credential_binding_exists? |
41 | 55 | !!service_credential_binding |
42 | 56 | end |
43 | 57 |
|
44 | | - def allowed_to_access_space? |
45 | | - space = service_credential_binding.space |
| 58 | + def list_fetcher |
| 59 | + @list_fetcher ||= VCAP::CloudController::ServiceCredentialBindingListFetcher.new |
| 60 | + end |
46 | 61 |
|
47 | | - permission_queryer.can_read_from_space?(space.guid, space.organization_guid) |
| 62 | + def fetcher |
| 63 | + @fetcher ||= VCAP::CloudController::ServiceCredentialBindingFetcher.new |
48 | 64 | end |
49 | 65 | end |
0 commit comments