Class: PublishMyData::DataCube::ObservationsController

Inherits:
ApplicationController show all
Includes:
PublishMyData::DataCubeController
Defined in:
app/controllers/publish_my_data/data_cube/observations_controller.rb

Instance Method Summary collapse

Instance Method Details

#indexObject

GET /data/:dataset_slug/cube/observations  params:  rows_dimension = row-dimension-uri columns_dimension = column-dimension-uri locked-dimension-1-uri: locked-dimension-1-value-uri order_by_column = column-uri (optional - will order by rows labels if not provided). order_desc = true/false (default false) page (default 1)  per_page (default 500, min 1, max 5000).



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'app/controllers/publish_my_data/data_cube/observations_controller.rb', line 18

def index

  respond_to do |format|
    format.json do
      render json: @cube.grid_observations(
        @page,
        @per_page,
        @rows_dimension_uri,
        @columns_dimension_uri,
        @locked_dimensions,
        params[:order_desc], # optional
        params[:order_by_column] #optional
      )
    end
    # this doesn't use the page and per page params send to the controller.
    # it returns the whole result set as one .
    format.csv do
      filename = "#{@dataset.slug.gsub("/", "|")}.csv"
      headers["Content-Type"] ||= 'text/csv'
      headers["Content-Disposition"] = "attachment; filename=\"#{filename}\""

      render :text =>@cube.csv_observations(
        @rows_dimension_uri,
        @columns_dimension_uri,
        @locked_dimensions,
        params[:order_desc], # optional
        params[:order_by_column] #optional
      )
    end

  end

end