|
3 | 3 | module VCAP::CloudController |
4 | 4 | class DropletListFetcher < BaseListFetcher |
5 | 5 | class << self |
6 | | - def fetch_all(message) |
7 | | - dataset = DropletModel.dataset |
8 | | - filter(message, nil, nil, dataset) |
| 6 | + def fetch_all(message, eager_loaded_associations: []) |
| 7 | + filter(message, nil, nil, droplet_dataset(eager_loaded_associations)) |
9 | 8 | end |
10 | 9 |
|
11 | | - def fetch_for_spaces(message, space_guids) |
12 | | - dataset = DropletModel.dataset |
13 | | - filter(message, nil, space_guids, dataset) |
| 10 | + def fetch_for_spaces(message, space_guids, eager_loaded_associations: []) |
| 11 | + filter(message, nil, space_guids, droplet_dataset(eager_loaded_associations)) |
14 | 12 | end |
15 | 13 |
|
16 | | - def fetch_for_app(message) |
| 14 | + def fetch_for_app(message, eager_loaded_associations: []) |
17 | 15 | app = AppModel.where(guid: message.app_guid).first |
18 | 16 | return nil unless app |
19 | 17 |
|
20 | | - [app, filter(message, app, nil, app.droplets_dataset)] |
| 18 | + [app, filter(message, app, nil, droplet_dataset(eager_loaded_associations, app.droplets_dataset))] |
21 | 19 | end |
22 | 20 |
|
23 | | - def fetch_for_package(message) |
| 21 | + def fetch_for_package(message, eager_loaded_associations: []) |
24 | 22 | package = PackageModel.where(guid: message.package_guid).first |
25 | 23 | return nil unless package |
26 | 24 |
|
27 | | - [package, filter(message, nil, nil, package.droplets_dataset)] |
| 25 | + [package, filter(message, nil, nil, droplet_dataset(eager_loaded_associations, package.droplets_dataset))] |
28 | 26 | end |
29 | 27 |
|
30 | 28 | private |
31 | 29 |
|
| 30 | + def droplet_dataset(eager_loaded_associations, dataset=DropletModel.dataset) |
| 31 | + dataset.eager(eager_loaded_associations) |
| 32 | + end |
| 33 | + |
32 | 34 | def filter(message, app, space_guids, dataset) |
33 | 35 | if message.requested?(:current) && app |
34 | 36 | dataset = dataset.extension(:null_dataset) |
|
0 commit comments