=begin #Voucherify API #Voucherify promotion engine REST API. Please see https://docs.voucherify.io/docs for more details. The version of the OpenAPI document: v2018-08-01 Contact: support@voucherify.io Generated by: https://openapi-generator.tech OpenAPI Generator version: 7.0.1 =end require 'cgi' module VoucherifySdk class CategoriesApi attr_accessor :api_client def initialize(api_client = ApiClient.default) @api_client = api_client end # Create Category # Create category with a specific name and hierarchy. # @param [Hash] opts the optional parameters # @option opts [CategoriesCreateRequestBody] :categories_create_request_body Specify the details of the category that you would like to create. # @return [CategoriesCreateResponseBody] def create_category(opts = {}) data, _status_code, _headers = create_category_with_http_info(opts) data end # Create Category # Create category with a specific name and hierarchy. # @param [Hash] opts the optional parameters # @option opts [CategoriesCreateRequestBody] :categories_create_request_body Specify the details of the category that you would like to create. # @return [Array<(CategoriesCreateResponseBody, Integer, Hash)>] CategoriesCreateResponseBody data, response status code and response headers private def create_category_with_http_info(opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: CategoriesApi.create_category ...' end # resource path local_var_path = '/v1/categories' # query parameters query_params = opts[:query_params] || {} # header parameters header_params = opts[:header_params] || {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) # HTTP header 'Content-Type' content_type = @api_client.select_header_content_type(['application/json']) if !content_type.nil? header_params['Content-Type'] = content_type end # form parameters form_params = opts[:form_params] || {} # http body (model) post_body = opts[:debug_body] || @api_client.object_to_http_body(opts[:'categories_create_request_body']) # return_type return_type = opts[:debug_return_type] || 'CategoriesCreateResponseBody' # auth_names auth_names = opts[:debug_auth_names] || ['X-App-Id', 'X-App-Token'] new_options = opts.merge( :operation => :"CategoriesApi.create_category", :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => return_type ) data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options) if @api_client.config.debugging @api_client.config.logger.debug "API called: CategoriesApi#create_category\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Delete Category # Delete a category by the category ID. # @param category_id [String] Unique category ID assigned by Voucherify. # @param [Hash] opts the optional parameters # @return [nil] def delete_category(category_id, opts = {}) delete_category_with_http_info(category_id, opts) nil end # Delete Category # Delete a category by the category ID. # @param category_id [String] Unique category ID assigned by Voucherify. # @param [Hash] opts the optional parameters # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers private def delete_category_with_http_info(category_id, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: CategoriesApi.delete_category ...' end # verify the required parameter 'category_id' is set if @api_client.config.client_side_validation && category_id.nil? fail ArgumentError, "Missing the required parameter 'category_id' when calling CategoriesApi.delete_category" end # resource path local_var_path = '/v1/categories/{categoryId}'.sub('{' + 'categoryId' + '}', CGI.escape(category_id.to_s)) # query parameters query_params = opts[:query_params] || {} # header parameters header_params = opts[:header_params] || {} # form parameters form_params = opts[:form_params] || {} # http body (model) post_body = opts[:debug_body] # return_type return_type = opts[:debug_return_type] # auth_names auth_names = opts[:debug_auth_names] || ['X-App-Id', 'X-App-Token'] new_options = opts.merge( :operation => :"CategoriesApi.delete_category", :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => return_type ) data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, new_options) if @api_client.config.debugging @api_client.config.logger.debug "API called: CategoriesApi#delete_category\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Get Category # Retrieve a category by the category ID. # @param category_id [String] Unique category ID assigned by Voucherify. # @param [Hash] opts the optional parameters # @return [CategoriesGetResponseBody] def get_category(category_id, opts = {}) data, _status_code, _headers = get_category_with_http_info(category_id, opts) data end # Get Category # Retrieve a category by the category ID. # @param category_id [String] Unique category ID assigned by Voucherify. # @param [Hash] opts the optional parameters # @return [Array<(CategoriesGetResponseBody, Integer, Hash)>] CategoriesGetResponseBody data, response status code and response headers private def get_category_with_http_info(category_id, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: CategoriesApi.get_category ...' end # verify the required parameter 'category_id' is set if @api_client.config.client_side_validation && category_id.nil? fail ArgumentError, "Missing the required parameter 'category_id' when calling CategoriesApi.get_category" end # resource path local_var_path = '/v1/categories/{categoryId}'.sub('{' + 'categoryId' + '}', CGI.escape(category_id.to_s)) # query parameters query_params = opts[:query_params] || {} # header parameters header_params = opts[:header_params] || {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) # form parameters form_params = opts[:form_params] || {} # http body (model) post_body = opts[:debug_body] # return_type return_type = opts[:debug_return_type] || 'CategoriesGetResponseBody' # auth_names auth_names = opts[:debug_auth_names] || ['X-App-Id', 'X-App-Token'] new_options = opts.merge( :operation => :"CategoriesApi.get_category", :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => return_type ) data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options) if @api_client.config.debugging @api_client.config.logger.debug "API called: CategoriesApi#get_category\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # List Categories # List all categories. # @param [Hash] opts the optional parameters # @return [CategoriesListResponseBody] def list_categories(opts = {}) data, _status_code, _headers = list_categories_with_http_info(opts) data end # List Categories # List all categories. # @param [Hash] opts the optional parameters # @return [Array<(CategoriesListResponseBody, Integer, Hash)>] CategoriesListResponseBody data, response status code and response headers private def list_categories_with_http_info(opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: CategoriesApi.list_categories ...' end # resource path local_var_path = '/v1/categories' # query parameters query_params = opts[:query_params] || {} # header parameters header_params = opts[:header_params] || {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) # form parameters form_params = opts[:form_params] || {} # http body (model) post_body = opts[:debug_body] # return_type return_type = opts[:debug_return_type] || 'CategoriesListResponseBody' # auth_names auth_names = opts[:debug_auth_names] || ['X-App-Id', 'X-App-Token'] new_options = opts.merge( :operation => :"CategoriesApi.list_categories", :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => return_type ) data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options) if @api_client.config.debugging @api_client.config.logger.debug "API called: CategoriesApi#list_categories\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Update Category # Update category using the category ID. # @param category_id [String] Unique category ID assigned by Voucherify. # @param [Hash] opts the optional parameters # @option opts [CategoriesUpdateRequestBody] :categories_update_request_body Specify the details of the category that you would like to update. # @return [CategoriesUpdateResponseBody] def update_category(category_id, opts = {}) data, _status_code, _headers = update_category_with_http_info(category_id, opts) data end # Update Category # Update category using the category ID. # @param category_id [String] Unique category ID assigned by Voucherify. # @param [Hash] opts the optional parameters # @option opts [CategoriesUpdateRequestBody] :categories_update_request_body Specify the details of the category that you would like to update. # @return [Array<(CategoriesUpdateResponseBody, Integer, Hash)>] CategoriesUpdateResponseBody data, response status code and response headers private def update_category_with_http_info(category_id, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: CategoriesApi.update_category ...' end # verify the required parameter 'category_id' is set if @api_client.config.client_side_validation && category_id.nil? fail ArgumentError, "Missing the required parameter 'category_id' when calling CategoriesApi.update_category" end # resource path local_var_path = '/v1/categories/{categoryId}'.sub('{' + 'categoryId' + '}', CGI.escape(category_id.to_s)) # query parameters query_params = opts[:query_params] || {} # header parameters header_params = opts[:header_params] || {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) # HTTP header 'Content-Type' content_type = @api_client.select_header_content_type(['application/json']) if !content_type.nil? header_params['Content-Type'] = content_type end # form parameters form_params = opts[:form_params] || {} # http body (model) post_body = opts[:debug_body] || @api_client.object_to_http_body(opts[:'categories_update_request_body']) # return_type return_type = opts[:debug_return_type] || 'CategoriesUpdateResponseBody' # auth_names auth_names = opts[:debug_auth_names] || ['X-App-Id', 'X-App-Token'] new_options = opts.merge( :operation => :"CategoriesApi.update_category", :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => return_type ) data, status_code, headers = @api_client.call_api(:PUT, local_var_path, new_options) if @api_client.config.debugging @api_client.config.logger.debug "API called: CategoriesApi#update_category\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end end end