Module: NexosisApi::Client::Datasets
- Included in:
- NexosisApi::Client
- Defined in:
- lib/nexosis_api/client/datasets.rb
Overview
Dataset-based API operations
Instance Method Summary collapse
-
#create_dataset_csv(dataset_name, csv) ⇒ NexosisApi::DatasetSummary
save data in a named dataset from csv content.
-
#create_dataset_json(dataset_name, json_data) ⇒ NexosisApi::DatasetSummary
save data in a named dataset.
-
#get_dataset(dataset_name, page_number = 0, page_size = 50, query_options = {}) ⇒ Object
Get the data in the set, with paging, and optional projection.
-
#get_dataset_csv(dataset_name, page_number = 0, page_size = 50, query_options = {}) ⇒ Object
Get the data in the set, written to a CSV file, optionally filtering it.
-
#list_datasets(partial_name = '', page = 0, page_size = 50) ⇒ NexosisApi::PagedArray of NexosisApi::DatasetSummary
Gets the list of data sets that have been saved to the system, optionally filtering by partial name match.
-
#remove_dataset(dataset_name, filter_options = {}) ⇒ Object
Remove data from a data set or the entire set.
Instance Method Details
#create_dataset_csv(dataset_name, csv) ⇒ NexosisApi::DatasetSummary
save data in a named dataset from csv content
24 25 26 27 |
# File 'lib/nexosis_api/client/datasets.rb', line 24 def create_dataset_csv(dataset_name, csv) content = process_csv_to_s csv create_dataset dataset_name, content, 'text/csv' end |
#create_dataset_json(dataset_name, json_data) ⇒ NexosisApi::DatasetSummary
input json is to be a hash, do not send a json string via to_json.
save data in a named dataset
15 16 17 |
# File 'lib/nexosis_api/client/datasets.rb', line 15 def create_dataset_json(dataset_name, json_data) create_dataset dataset_name, json_data.to_json, 'application/json' end |
#get_dataset(dataset_name, page_number = 0, page_size = 50, query_options = {}) ⇒ Object
Query Options includes start_date as a DateTime or ISO 8601 compliant string, end_date, also as a DateTime or string, and :include as an Array of strings indicating the columns to return. The dates can be used independently and are inclusive. Lack of options returns all values within the given page.
Get the data in the set, with paging, and optional projection.
62 63 64 65 66 |
# File 'lib/nexosis_api/client/datasets.rb', line 62 def get_dataset(dataset_name, page_number = 0, page_size = 50, = {}) response = get_dataset_internal(dataset_name, page_number, page_size, ) return NexosisApi::DatasetData.new(response.parsed_response) if response.success? raise HttpException.new("There was a problem getting the dataset: #{response.code}.", "getting dataset #{dataset_name}", response) end |
#get_dataset_csv(dataset_name, page_number = 0, page_size = 50, query_options = {}) ⇒ Object
Query Options includes start_date as a DateTime or ISO 8601 compliant string, end_date, also as a DateTime or string, and :include as an Array of strings indicating the columns to return. The dates can be used independently and are inclusive. Lack of options returns all values within the given page.
Get the data in the set, written to a CSV file, optionally filtering it.
79 80 81 82 83 |
# File 'lib/nexosis_api/client/datasets.rb', line 79 def get_dataset_csv(dataset_name, page_number = 0, page_size = 50, = {}) response = get_dataset_internal(dataset_name, page_number, page_size, , 'text/csv') return response.body if response.success? raise HttpException.new("There was a problem getting the dataset: #{response.code}.", "getting dataset #{dataset_name}", response) end |
#list_datasets(partial_name = '', page = 0, page_size = 50) ⇒ NexosisApi::PagedArray of NexosisApi::DatasetSummary
Gets the list of data sets that have been saved to the system, optionally filtering by partial name match.
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/nexosis_api/client/datasets.rb', line 36 def list_datasets(partial_name = '', page = 0, page_size = 50) list_dataset_url = '/data' query = { page: page, pageSize: page_size } query['partialName'] = partial_name unless partial_name.empty? response = self.class.get(list_dataset_url, headers: @headers, query: query) if response.success? NexosisApi::PagedArray.new(response.parsed_response, response.parsed_response['items'] .map { |dr| NexosisApi::DatasetSummary.new(dr) }) else raise HttpException.new("There was a problem listing datasets: #{response.code}.", "listing datasets with partial name #{partial_name}", response) end end |
#remove_dataset(dataset_name, filter_options = {}) ⇒ Object
Options: start_date, end_date, cascade_forecast, cascade_sessions, cascade
-
start_date - the first date on which to start removing data
-
end_date - the last date on which to finish removing data
-
cascade_forecast - will cascade deletes to all related forecasts
-
cascade_session - will cascade deletes to all related sessions
-
cascade_view - will cascade deletes to all related views (any part of join - think twice)
-
cascase_model - will cascade deletes to all models created from this dataset
-
cascade - will cascade deletes to all related forecasts and sessions
Remove data from a data set or the entire set.
99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
# File 'lib/nexosis_api/client/datasets.rb', line 99 def remove_dataset(dataset_name, = {}) raise ArgumentError, 'dataset_name was not provided and is not optional ' if dataset_name.to_s.empty? dataset_remove_url = "/data/#{dataset_name}" query = {} if .empty? == false cascade_query = () query['cascade'] = cascade_query unless cascade_query.nil? query['startDate'] = [[:start_date].to_s] unless [:start_date].nil? query['endDate'] = [[:end_date].to_s] unless [:end_date].nil? end # normalizer = proc { |query_set| query_set.map { |key, value| value.map { |v| "#{key}=#{v}" } }.join('&') } response = self.class.delete(dataset_remove_url, headers: @headers, query: query, query_string_normalizer: ->(query_map) {array_query_normalizer(query_map)}) return if response.success? raise HttpException.new("There was a problem removing the dataset: #{response.code}.", "removing dataset #{dataset_name}", response) end |