|
1 | | -module VCAP::CloudController |
2 | | - class DeploymentListFetcher |
3 | | - def initialize(message:) |
4 | | - @message = message |
5 | | - end |
6 | | - |
7 | | - def fetch_all |
8 | | - filter(AppModel.select(:id)) |
9 | | - end |
10 | | - |
11 | | - def fetch_for_spaces(space_guids:) |
12 | | - app_dataset = AppModel.where(space_guid: space_guids) |
13 | | - filter(app_dataset) |
14 | | - end |
15 | | - |
16 | | - private |
17 | | - |
18 | | - attr_reader :message |
| 1 | +require 'fetchers/base_list_fetcher' |
19 | 2 |
|
20 | | - def filter(app_dataset) |
21 | | - dataset = filter_deployment_dataset(DeploymentModel.dataset) |
| 3 | +module VCAP::CloudController |
| 4 | + class DeploymentListFetcher < BaseListFetcher |
| 5 | + class << self |
| 6 | + def fetch_all(message) |
| 7 | + filter(message, AppModel.select(:id)) |
| 8 | + end |
22 | 9 |
|
23 | | - if message.requested? :app_guids |
24 | | - app_dataset = app_dataset.where(guid: message.app_guids) |
| 10 | + def fetch_for_spaces(message, space_guids:) |
| 11 | + app_dataset = AppModel.where(space_guid: space_guids) |
| 12 | + filter(message, app_dataset) |
25 | 13 | end |
26 | 14 |
|
27 | | - dataset.where(app: app_dataset) |
28 | | - end |
| 15 | + private |
29 | 16 |
|
30 | | - def filter_deployment_dataset(dataset) |
31 | | - if message.requested? :states |
32 | | - dataset = dataset.where(state: message.states) |
33 | | - end |
| 17 | + attr_reader :message |
34 | 18 |
|
35 | | - if message.requested? :status_reasons |
36 | | - dataset = NullFilterQueryGenerator.add_filter(dataset, :status_reason, message.status_reasons) |
37 | | - end |
| 19 | + def filter(message, app_dataset) |
| 20 | + dataset = filter_deployment_dataset(message, DeploymentModel.dataset) |
38 | 21 |
|
39 | | - if message.requested? :status_values |
40 | | - dataset = dataset.where(status_value: message.status_values) |
41 | | - end |
| 22 | + if message.requested? :app_guids |
| 23 | + app_dataset = app_dataset.where(guid: message.app_guids) |
| 24 | + end |
42 | 25 |
|
43 | | - if message.requested?(:label_selector) |
44 | | - dataset = LabelSelectorQueryGenerator.add_selector_queries( |
45 | | - label_klass: DeploymentLabelModel, |
46 | | - resource_dataset: dataset, |
47 | | - requirements: message.requirements, |
48 | | - resource_klass: DeploymentModel, |
49 | | - ) |
| 26 | + dataset = dataset.where(app: app_dataset) |
| 27 | + super(message, dataset, DeploymentModel) |
50 | 28 | end |
51 | 29 |
|
52 | | - dataset |
| 30 | + def filter_deployment_dataset(message, dataset) |
| 31 | + if message.requested? :states |
| 32 | + dataset = dataset.where(state: message.states) |
| 33 | + end |
| 34 | + |
| 35 | + if message.requested? :status_reasons |
| 36 | + dataset = NullFilterQueryGenerator.add_filter(dataset, :status_reason, message.status_reasons) |
| 37 | + end |
| 38 | + |
| 39 | + if message.requested? :status_values |
| 40 | + dataset = dataset.where(status_value: message.status_values) |
| 41 | + end |
| 42 | + |
| 43 | + if message.requested?(:label_selector) |
| 44 | + dataset = LabelSelectorQueryGenerator.add_selector_queries( |
| 45 | + label_klass: DeploymentLabelModel, |
| 46 | + resource_dataset: dataset, |
| 47 | + requirements: message.requirements, |
| 48 | + resource_klass: DeploymentModel, |
| 49 | + ) |
| 50 | + end |
| 51 | + dataset |
| 52 | + end |
53 | 53 | end |
54 | 54 | end |
55 | 55 | end |
0 commit comments