|
6 | 6 | require 'actions/sidecar_create' |
7 | 7 | require 'actions/sidecar_update' |
8 | 8 | require 'presenters/v3/sidecar_presenter' |
| 9 | +require 'fetchers/sidecar_list_fetcher' |
9 | 10 |
|
10 | 11 | class SidecarsController < ApplicationController |
11 | 12 | include SubResource |
12 | 13 |
|
13 | 14 | def index_by_app |
14 | | - app, space, org = AppFetcher.new.fetch(hashed_params[:app_guid]) |
15 | | - resource_not_found!(:app) unless app && permission_queryer.can_read_from_space?(space.guid, org.guid) |
16 | | - validate_and_present_for_list(app.sidecars_dataset) |
| 15 | + message = SidecarsListMessage.from_params(query_params) |
| 16 | + invalid_param!(message.errors.full_messages) unless message.valid? |
| 17 | + |
| 18 | + app, dataset = SidecarListFetcher.fetch_for_app(message, hashed_params[:app_guid]) |
| 19 | + resource_not_found!(:app) unless app && permission_queryer.can_read_from_space?(app.space.guid, app.organization.guid) |
| 20 | + render status: :ok, json: Presenters::V3::PaginatedListPresenter.new( |
| 21 | + presenter: Presenters::V3::SidecarPresenter, |
| 22 | + paginated_result: SequelPaginator.new.get_page(dataset, message.try(:pagination_options)), |
| 23 | + path: base_url(resource: 'sidecars'), |
| 24 | + ) |
17 | 25 | end |
18 | 26 |
|
19 | 27 | def index_by_process |
20 | | - process, space, org = ProcessFetcher.fetch(process_guid: hashed_params[:process_guid]) |
21 | | - resource_not_found!(:process) unless process && permission_queryer.can_read_from_space?(space.guid, org.guid) |
22 | | - validate_and_present_for_list(process.sidecars_dataset) |
| 28 | + message = SidecarsListMessage.from_params(query_params) |
| 29 | + invalid_param!(message.errors.full_messages) unless message.valid? |
| 30 | + |
| 31 | + process, dataset = SidecarListFetcher.fetch_for_process(message, hashed_params[:process_guid]) |
| 32 | + resource_not_found!(:process) unless process && permission_queryer.can_read_from_space?(process.space.guid, process.organization.guid) |
| 33 | + render status: :ok, json: Presenters::V3::PaginatedListPresenter.new( |
| 34 | + presenter: Presenters::V3::SidecarPresenter, |
| 35 | + paginated_result: SequelPaginator.new.get_page(dataset, message.try(:pagination_options)), |
| 36 | + path: base_url(resource: 'sidecars'), |
| 37 | + ) |
23 | 38 | end |
24 | 39 |
|
25 | 40 | def show |
@@ -86,17 +101,4 @@ def destroy |
86 | 101 | SidecarDelete.delete(sidecar) |
87 | 102 | head :no_content |
88 | 103 | end |
89 | | - |
90 | | - private |
91 | | - |
92 | | - def validate_and_present_for_list(dataset) |
93 | | - message = SidecarsListMessage.from_params(query_params) |
94 | | - invalid_param!(message.errors.full_messages) unless message.valid? |
95 | | - |
96 | | - render status: :ok, json: Presenters::V3::PaginatedListPresenter.new( |
97 | | - presenter: Presenters::V3::SidecarPresenter, |
98 | | - paginated_result: SequelPaginator.new.get_page(dataset, message.try(:pagination_options)), |
99 | | - path: base_url(resource: 'sidecars'), |
100 | | - ) |
101 | | - end |
102 | 104 | end |
0 commit comments