|
1 | 1 | require 'presenters/v3/paginated_list_presenter' |
2 | 2 | require 'presenters/v3/process_presenter' |
3 | 3 | require 'presenters/v3/process_stats_presenter' |
| 4 | +require 'presenters/v3/process_instances_presenter' |
| 5 | +require 'decorators/embed_process_instances_decorator' |
4 | 6 | require 'cloud_controller/paging/pagination_options' |
5 | 7 | require 'actions/process_delete' |
6 | 8 | require 'fetchers/process_list_fetcher' |
|
9 | 11 | require 'actions/process_terminate' |
10 | 12 | require 'actions/process_update' |
11 | 13 | require 'messages/process_scale_message' |
| 14 | +require 'messages/process_show_message' |
12 | 15 | require 'messages/process_update_message' |
13 | 16 | require 'messages/processes_list_message' |
14 | 17 | require 'controllers/v3/mixins/app_sub_resource' |
@@ -40,17 +43,30 @@ def index |
40 | 43 | end |
41 | 44 | end |
42 | 45 |
|
| 46 | + decorators = [] |
| 47 | + decorators << EmbedProcessInstancesDecorator if EmbedProcessInstancesDecorator.match?(message.embed) |
| 48 | + |
43 | 49 | render status: :ok, json: Presenters::V3::PaginatedListPresenter.new( |
44 | 50 | presenter: Presenters::V3::ProcessPresenter, |
45 | 51 | paginated_result: SequelPaginator.new.get_page(dataset, message.try(:pagination_options)), |
46 | 52 | path: base_url(resource: 'processes'), |
47 | | - message: message |
| 53 | + message: message, |
| 54 | + decorators: decorators |
48 | 55 | ) |
49 | 56 | end |
50 | 57 |
|
51 | 58 | def show |
52 | | - # TODO |
53 | | - render status: :ok, json: Presenters::V3::ProcessPresenter.new(@process, show_secrets: permission_queryer.can_read_secrets_in_space?(@space.id, @space.organization_id)) |
| 59 | + message = ProcessShowMessage.from_params(query_params) |
| 60 | + invalid_param!(message.errors.full_messages) unless message.valid? |
| 61 | + |
| 62 | + decorators = [] |
| 63 | + decorators << EmbedProcessInstancesDecorator if EmbedProcessInstancesDecorator.match?(message.embed) |
| 64 | + |
| 65 | + render status: :ok, json: Presenters::V3::ProcessPresenter.new( |
| 66 | + @process, |
| 67 | + show_secrets: permission_queryer.can_read_secrets_in_space?(@space.id, @space.organization_id), |
| 68 | + decorators: decorators |
| 69 | + ) |
54 | 70 | end |
55 | 71 |
|
56 | 72 | def update |
@@ -106,6 +122,12 @@ def stats |
106 | 122 | render status: :ok, json: Presenters::V3::ProcessStatsPresenter.new(@process.type, process_stats) |
107 | 123 | end |
108 | 124 |
|
| 125 | + def process_instances |
| 126 | + instances = instances_reporters.instances_for_processes([@process]) |
| 127 | + |
| 128 | + render status: :ok, json: Presenters::V3::ProcessInstancesPresenter.new(instances[@process.guid], @process) |
| 129 | + end |
| 130 | + |
109 | 131 | private |
110 | 132 |
|
111 | 133 | def find_process_and_space |
|
0 commit comments