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 = '') ⇒ Array 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
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.
56 57 58 59 60 61 62 63 |
# File 'lib/nexosis_api/client/datasets.rb', line 56 def get_dataset(dataset_name, page_number = 0, page_size = 50, = {}) response = get_dataset_internal(dataset_name,page_number,page_size,) if(response.success?) NexosisApi::DatasetData.new(response.parsed_response) else raise HttpException.new("There was a problem getting the dataset: #{response.code}.", "getting dataset #{dataset_name}" ,response) end 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.
76 77 78 79 80 81 82 83 |
# File 'lib/nexosis_api/client/datasets.rb', line 76 def get_dataset_csv(dataset_name, page_number = 0, page_size = 50, = {}) response = get_dataset_internal(dataset_name,page_number,page_size,,"text/csv") if(response.success?) response.body else raise HttpException.new("There was a problem getting the dataset: #{response.code}.", "getting dataset #{dataset_name}" ,response) end end |
#list_datasets(partial_name = '') ⇒ Array of NexosisApi::DatasetSummary
Gets the list of data sets that have been saved to the system, optionally filtering by partial name match.
33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/nexosis_api/client/datasets.rb', line 33 def list_datasets(partial_name = '') list_dataset_url = "/data?partialName=#{partial_name.to_s}" response = self.class.get(list_dataset_url,:headers => @headers) if(response.success?) results = [] response.parsed_response["items"].each do |dr| results << NexosisApi::DatasetSummary.new(dr) end results 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_sessions - will cascade deletes to all related sessions
-
cascade - will cascade deletes to all related forecasts and sessions
Remove data from a data set or the entire set.
97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 |
# File 'lib/nexosis_api/client/datasets.rb', line 97 def remove_dataset(dataset_name, = {}) raise ArgumentError "dataset_name was not provided and is not optional " unless dataset_name.to_s.empty? == false dataset_remove_url = "/data/#{dataset_name}" query = {} = .each {|k,v| if(k.to_s.include?('cascade') && v) if(k.to_s == 'cascade') #hack here to handle two-keyed api query param query["cascade"] = "forecast" query[:cascade] = "session" elsif(k.to_s == 'cascade_forecast') query["cascade"] = "forecast" else query["cascade"] = "session" end end } if(.empty? == false) query["startDate"] = [:start_date].to_s #unless filter_options[:start_date].nil? query["endDate"] = [:end_date].to_s #unless filter_options[:end_date].nil? end response = self.class.delete(dataset_remove_url, :headers => @headers, :query => query) if(response.success?) return else raise HttpException.new("There was a problem removing the dataset: #{response.code}.", "removing dataset #{dataset_name}", response) end end |