lib/forgejo/api/package_api.rb



=begin
#Forgejo API

#This documentation describes the Forgejo API.

The version of the OpenAPI document: 10.0.0-121-28886cd+gitea-1.22.0

Generated by: https://openapi-generator.tech
Generator version: 7.12.0

=end

require 'cgi'

module Forgejo
  class PackageApi
    attr_accessor :api_client

    def initialize(api_client = ApiClient.default)
      @api_client = api_client
    end
    # Delete a package
    # @param owner [String] owner of the package
    # @param type [String] type of the package
    # @param name [String] name of the package
    # @param version [String] version of the package
    # @param [Hash] opts the optional parameters
    # @return [nil]
    def delete_package(owner, type, name, version, opts = {})
      delete_package_with_http_info(owner, type, name, version, opts)
      nil
    end

    # Delete a package
    # @param owner [String] owner of the package
    # @param type [String] type of the package
    # @param name [String] name of the package
    # @param version [String] version of the package
    # @param [Hash] opts the optional parameters
    # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
    def delete_package_with_http_info(owner, type, name, version, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: PackageApi.delete_package ...'
      end
      # verify the required parameter 'owner' is set
      if @api_client.config.client_side_validation && owner.nil?
        fail ArgumentError, "Missing the required parameter 'owner' when calling PackageApi.delete_package"
      end
      # verify the required parameter 'type' is set
      if @api_client.config.client_side_validation && type.nil?
        fail ArgumentError, "Missing the required parameter 'type' when calling PackageApi.delete_package"
      end
      # verify the required parameter 'name' is set
      if @api_client.config.client_side_validation && name.nil?
        fail ArgumentError, "Missing the required parameter 'name' when calling PackageApi.delete_package"
      end
      # verify the required parameter 'version' is set
      if @api_client.config.client_side_validation && version.nil?
        fail ArgumentError, "Missing the required parameter 'version' when calling PackageApi.delete_package"
      end
      # resource path
      local_var_path = '/packages/{owner}/{type}/{name}/{version}'.sub('{' + 'owner' + '}', CGI.escape(owner.to_s)).sub('{' + 'type' + '}', CGI.escape(type.to_s)).sub('{' + 'name' + '}', CGI.escape(name.to_s)).sub('{' + 'version' + '}', CGI.escape(version.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', 'text/html']) unless header_params['Accept']

      # 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] || ['AuthorizationHeaderToken']

      new_options = opts.merge(
        :operation => :"PackageApi.delete_package",
        :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: PackageApi#delete_package\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Gets a package
    # @param owner [String] owner of the package
    # @param type [String] type of the package
    # @param name [String] name of the package
    # @param version [String] version of the package
    # @param [Hash] opts the optional parameters
    # @return [Package]
    def get_package(owner, type, name, version, opts = {})
      data, _status_code, _headers = get_package_with_http_info(owner, type, name, version, opts)
      data
    end

    # Gets a package
    # @param owner [String] owner of the package
    # @param type [String] type of the package
    # @param name [String] name of the package
    # @param version [String] version of the package
    # @param [Hash] opts the optional parameters
    # @return [Array<(Package, Integer, Hash)>] Package data, response status code and response headers
    def get_package_with_http_info(owner, type, name, version, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: PackageApi.get_package ...'
      end
      # verify the required parameter 'owner' is set
      if @api_client.config.client_side_validation && owner.nil?
        fail ArgumentError, "Missing the required parameter 'owner' when calling PackageApi.get_package"
      end
      # verify the required parameter 'type' is set
      if @api_client.config.client_side_validation && type.nil?
        fail ArgumentError, "Missing the required parameter 'type' when calling PackageApi.get_package"
      end
      # verify the required parameter 'name' is set
      if @api_client.config.client_side_validation && name.nil?
        fail ArgumentError, "Missing the required parameter 'name' when calling PackageApi.get_package"
      end
      # verify the required parameter 'version' is set
      if @api_client.config.client_side_validation && version.nil?
        fail ArgumentError, "Missing the required parameter 'version' when calling PackageApi.get_package"
      end
      # resource path
      local_var_path = '/packages/{owner}/{type}/{name}/{version}'.sub('{' + 'owner' + '}', CGI.escape(owner.to_s)).sub('{' + 'type' + '}', CGI.escape(type.to_s)).sub('{' + 'name' + '}', CGI.escape(name.to_s)).sub('{' + 'version' + '}', CGI.escape(version.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']) unless header_params['Accept']

      # form parameters
      form_params = opts[:form_params] || {}

      # http body (model)
      post_body = opts[:debug_body]

      # return_type
      return_type = opts[:debug_return_type] || 'Package'

      # auth_names
      auth_names = opts[:debug_auth_names] || ['AuthorizationHeaderToken']

      new_options = opts.merge(
        :operation => :"PackageApi.get_package",
        :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: PackageApi#get_package\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Gets all files of a package
    # @param owner [String] owner of the package
    # @param type [String] type of the package
    # @param name [String] name of the package
    # @param version [String] version of the package
    # @param [Hash] opts the optional parameters
    # @return [Array<PackageFile>]
    def list_package_files(owner, type, name, version, opts = {})
      data, _status_code, _headers = list_package_files_with_http_info(owner, type, name, version, opts)
      data
    end

    # Gets all files of a package
    # @param owner [String] owner of the package
    # @param type [String] type of the package
    # @param name [String] name of the package
    # @param version [String] version of the package
    # @param [Hash] opts the optional parameters
    # @return [Array<(Array<PackageFile>, Integer, Hash)>] Array<PackageFile> data, response status code and response headers
    def list_package_files_with_http_info(owner, type, name, version, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: PackageApi.list_package_files ...'
      end
      # verify the required parameter 'owner' is set
      if @api_client.config.client_side_validation && owner.nil?
        fail ArgumentError, "Missing the required parameter 'owner' when calling PackageApi.list_package_files"
      end
      # verify the required parameter 'type' is set
      if @api_client.config.client_side_validation && type.nil?
        fail ArgumentError, "Missing the required parameter 'type' when calling PackageApi.list_package_files"
      end
      # verify the required parameter 'name' is set
      if @api_client.config.client_side_validation && name.nil?
        fail ArgumentError, "Missing the required parameter 'name' when calling PackageApi.list_package_files"
      end
      # verify the required parameter 'version' is set
      if @api_client.config.client_side_validation && version.nil?
        fail ArgumentError, "Missing the required parameter 'version' when calling PackageApi.list_package_files"
      end
      # resource path
      local_var_path = '/packages/{owner}/{type}/{name}/{version}/files'.sub('{' + 'owner' + '}', CGI.escape(owner.to_s)).sub('{' + 'type' + '}', CGI.escape(type.to_s)).sub('{' + 'name' + '}', CGI.escape(name.to_s)).sub('{' + 'version' + '}', CGI.escape(version.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']) unless header_params['Accept']

      # form parameters
      form_params = opts[:form_params] || {}

      # http body (model)
      post_body = opts[:debug_body]

      # return_type
      return_type = opts[:debug_return_type] || 'Array<PackageFile>'

      # auth_names
      auth_names = opts[:debug_auth_names] || ['AuthorizationHeaderToken']

      new_options = opts.merge(
        :operation => :"PackageApi.list_package_files",
        :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: PackageApi#list_package_files\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end

    # Gets all packages of an owner
    # @param owner [String] owner of the packages
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page page number of results to return (1-based)
    # @option opts [Integer] :limit page size of results
    # @option opts [String] :type package type filter
    # @option opts [String] :q name filter
    # @return [Array<Package>]
    def list_packages(owner, opts = {})
      data, _status_code, _headers = list_packages_with_http_info(owner, opts)
      data
    end

    # Gets all packages of an owner
    # @param owner [String] owner of the packages
    # @param [Hash] opts the optional parameters
    # @option opts [Integer] :page page number of results to return (1-based)
    # @option opts [Integer] :limit page size of results
    # @option opts [String] :type package type filter
    # @option opts [String] :q name filter
    # @return [Array<(Array<Package>, Integer, Hash)>] Array<Package> data, response status code and response headers
    def list_packages_with_http_info(owner, opts = {})
      if @api_client.config.debugging
        @api_client.config.logger.debug 'Calling API: PackageApi.list_packages ...'
      end
      # verify the required parameter 'owner' is set
      if @api_client.config.client_side_validation && owner.nil?
        fail ArgumentError, "Missing the required parameter 'owner' when calling PackageApi.list_packages"
      end
      allowable_values = ["alpine", "cargo", "chef", "composer", "conan", "conda", "container", "cran", "debian", "generic", "go", "helm", "maven", "npm", "nuget", "pub", "pypi", "rpm", "rubygems", "swift", "vagrant"]
      if @api_client.config.client_side_validation && opts[:'type'] && !allowable_values.include?(opts[:'type'])
        fail ArgumentError, "invalid value for \"type\", must be one of #{allowable_values}"
      end
      # resource path
      local_var_path = '/packages/{owner}'.sub('{' + 'owner' + '}', CGI.escape(owner.to_s))

      # query parameters
      query_params = opts[:query_params] || {}
      query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
      query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
      query_params[:'type'] = opts[:'type'] if !opts[:'type'].nil?
      query_params[:'q'] = opts[:'q'] if !opts[:'q'].nil?

      # header parameters
      header_params = opts[:header_params] || {}
      # HTTP header 'Accept' (if needed)
      header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']

      # form parameters
      form_params = opts[:form_params] || {}

      # http body (model)
      post_body = opts[:debug_body]

      # return_type
      return_type = opts[:debug_return_type] || 'Array<Package>'

      # auth_names
      auth_names = opts[:debug_auth_names] || ['AuthorizationHeaderToken']

      new_options = opts.merge(
        :operation => :"PackageApi.list_packages",
        :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: PackageApi#list_packages\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
      end
      return data, status_code, headers
    end
  end
end