--[[ Swagger Petstore This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. OpenAPI spec version: 1.0.0 Contact: apiteam@swagger.io Generated by: https://github.com/swagger-api/swagger-codegen.git ]] --package petstore local http_request = require "http.request" local http_util = require "http.util" local dkjson = require "dkjson" local basexx = require "basexx" -- model import local petstore_pet_api = require "petstore.api.pet_api" local petstore= {} local petstore_mt = { __name = "pet_api"; __index = petstore; } local function new_pet_api(host, basePath, schemes) local schemes_map = {} for _,v in ipairs(schemes) do schemes_map[v] = v end local default_scheme = schemes_map.https or schemes_map.http return setmetatable({ host = host; basePath = basePath or "http://petstore.swagger.io/v2"; schemes = schemes_map; default_scheme = default_scheme; http_username = nil; http_password = nil; api_key = {}; access_token = nil; }, petstore_mt) end function pet_api:add_pet(body) local req = http_request.new_from_uri({ scheme = self.default_scheme; host = self.host; path = string.format("%s/pet", self.basePath); }) -- set HTTP verb req.headers:upsert(":method", "POST") -- TODO: create a function to select proper accept -- ref: https://github.com/swagger-api/swagger-codegen/pull/6252#issuecomment-321199879 --local var_content_type = { "application/json", "application/xml" } req.headers:upsert("accept", "application/json") -- TODO: create a function to select proper content-type -- ref: https://github.com/swagger-api/swagger-codegen/pull/6252#issuecomment-321199879 --local var_accept = { "application/xml", "application/json" } req.headers:upsert("content-type", "application/xml") req:set_body(dkjson.encode(body)) -- oAuth req.headers:upsert("authorization", "Bearer " .. self.access_token) -- make the HTTP call local headers, stream, errno = req:go() if not headers then return nil, stream, errno end local http_status = headers:get(":status") if http_status:sub(1,1) == "2" then return nil, headers else local body, err, errno2 = stream:get_body_as_string() if not body then return nil, err, errno2 end stream:shutdown() -- return the error message (http body) return nil, http_status, body end end function pet_api:delete_pet(pet_id, api_key) local req = http_request.new_from_uri({ scheme = self.default_scheme; host = self.host; path = string.format("%s/pet/%s", self.basePath, pet_id); }) -- set HTTP verb req.headers:upsert(":method", "DELETE") -- TODO: create a function to select proper content-type -- ref: https://github.com/swagger-api/swagger-codegen/pull/6252#issuecomment-321199879 --local var_accept = { "application/xml", "application/json" } req.headers:upsert("content-type", "application/xml") req.headers:upsert("api_key", api_key) -- oAuth req.headers:upsert("authorization", "Bearer " .. self.access_token) -- make the HTTP call local headers, stream, errno = req:go() if not headers then return nil, stream, errno end local http_status = headers:get(":status") if http_status:sub(1,1) == "2" then return nil, headers else local body, err, errno2 = stream:get_body_as_string() if not body then return nil, err, errno2 end stream:shutdown() -- return the error message (http body) return nil, http_status, body end end function pet_api:find_pets_by_status(status) local req = http_request.new_from_uri({ scheme = self.default_scheme; host = self.host; path = string.format("%s/pet/findByStatus?status=%s", self.basePath, http_util.encodeURIComponent(status)); }) -- set HTTP verb req.headers:upsert(":method", "GET") -- TODO: create a function to select proper content-type -- ref: https://github.com/swagger-api/swagger-codegen/pull/6252#issuecomment-321199879 --local var_accept = { "application/xml", "application/json" } req.headers:upsert("content-type", "application/xml") -- oAuth req.headers:upsert("authorization", "Bearer " .. self.access_token) -- make the HTTP call local headers, stream, errno = req:go() if not headers then return nil, stream, errno end local http_status = headers:get(":status") if http_status:sub(1,1) == "2" then local body, err, errno2 = stream:get_body_as_string() -- exception when getting the HTTP body if not body then return nil, err, errno2 end stream:shutdown() local result, _, err3 = dkjson.decode(body) -- exception when decoding the HTTP body if result == nil then return nil, err3 end for _, ob in ipairs(result) do cast_pet(ob) end return result, headers else local body, err, errno2 = stream:get_body_as_string() if not body then return nil, err, errno2 end stream:shutdown() -- return the error message (http body) return nil, http_status, body end end function pet_api:find_pets_by_tags(tags) local req = http_request.new_from_uri({ scheme = self.default_scheme; host = self.host; path = string.format("%s/pet/findByTags?tags=%s", self.basePath, http_util.encodeURIComponent(tags)); }) -- set HTTP verb req.headers:upsert(":method", "GET") -- TODO: create a function to select proper content-type -- ref: https://github.com/swagger-api/swagger-codegen/pull/6252#issuecomment-321199879 --local var_accept = { "application/xml", "application/json" } req.headers:upsert("content-type", "application/xml") -- oAuth req.headers:upsert("authorization", "Bearer " .. self.access_token) -- make the HTTP call local headers, stream, errno = req:go() if not headers then return nil, stream, errno end local http_status = headers:get(":status") if http_status:sub(1,1) == "2" then local body, err, errno2 = stream:get_body_as_string() -- exception when getting the HTTP body if not body then return nil, err, errno2 end stream:shutdown() local result, _, err3 = dkjson.decode(body) -- exception when decoding the HTTP body if result == nil then return nil, err3 end for _, ob in ipairs(result) do cast_pet(ob) end return result, headers else local body, err, errno2 = stream:get_body_as_string() if not body then return nil, err, errno2 end stream:shutdown() -- return the error message (http body) return nil, http_status, body end end function pet_api:get_pet_by_id(pet_id) local req = http_request.new_from_uri({ scheme = self.default_scheme; host = self.host; path = string.format("%s/pet/%s", self.basePath, pet_id); }) -- set HTTP verb req.headers:upsert(":method", "GET") -- TODO: create a function to select proper content-type -- ref: https://github.com/swagger-api/swagger-codegen/pull/6252#issuecomment-321199879 --local var_accept = { "application/xml", "application/json" } req.headers:upsert("content-type", "application/xml") -- api key in headers 'api_key' req.headers:upsert("api_key", api_key['api_key']) -- make the HTTP call local headers, stream, errno = req:go() if not headers then return nil, stream, errno end local http_status = headers:get(":status") if http_status:sub(1,1) == "2" then local body, err, errno2 = stream:get_body_as_string() -- exception when getting the HTTP body if not body then return nil, err, errno2 end stream:shutdown() local result, _, err3 = dkjson.decode(body) -- exception when decoding the HTTP body if result == nil then return nil, err3 end return cast_pet(result), headers else local body, err, errno2 = stream:get_body_as_string() if not body then return nil, err, errno2 end stream:shutdown() -- return the error message (http body) return nil, http_status, body end end function pet_api:update_pet(body) local req = http_request.new_from_uri({ scheme = self.default_scheme; host = self.host; path = string.format("%s/pet", self.basePath); }) -- set HTTP verb req.headers:upsert(":method", "PUT") -- TODO: create a function to select proper accept -- ref: https://github.com/swagger-api/swagger-codegen/pull/6252#issuecomment-321199879 --local var_content_type = { "application/json", "application/xml" } req.headers:upsert("accept", "application/json") -- TODO: create a function to select proper content-type -- ref: https://github.com/swagger-api/swagger-codegen/pull/6252#issuecomment-321199879 --local var_accept = { "application/xml", "application/json" } req.headers:upsert("content-type", "application/xml") req:set_body(dkjson.encode(body)) -- oAuth req.headers:upsert("authorization", "Bearer " .. self.access_token) -- make the HTTP call local headers, stream, errno = req:go() if not headers then return nil, stream, errno end local http_status = headers:get(":status") if http_status:sub(1,1) == "2" then return nil, headers else local body, err, errno2 = stream:get_body_as_string() if not body then return nil, err, errno2 end stream:shutdown() -- return the error message (http body) return nil, http_status, body end end function pet_api:update_pet_with_form(pet_id, name, status) local req = http_request.new_from_uri({ scheme = self.default_scheme; host = self.host; path = string.format("%s/pet/%s", self.basePath, pet_id); }) -- set HTTP verb req.headers:upsert(":method", "POST") -- TODO: create a function to select proper accept -- ref: https://github.com/swagger-api/swagger-codegen/pull/6252#issuecomment-321199879 --local var_content_type = { "application/x-www-form-urlencoded" } req.headers:upsert("accept", "application/x-www-form-urlencoded") -- TODO: create a function to select proper content-type -- ref: https://github.com/swagger-api/swagger-codegen/pull/6252#issuecomment-321199879 --local var_accept = { "application/xml", "application/json" } req.headers:upsert("content-type", "application/xml") req:set_body(http_util.dict_to_query({ ["name"] = name; ["status"] = status; })) -- oAuth req.headers:upsert("authorization", "Bearer " .. self.access_token) -- make the HTTP call local headers, stream, errno = req:go() if not headers then return nil, stream, errno end local http_status = headers:get(":status") if http_status:sub(1,1) == "2" then return nil, headers else local body, err, errno2 = stream:get_body_as_string() if not body then return nil, err, errno2 end stream:shutdown() -- return the error message (http body) return nil, http_status, body end end function pet_api:upload_file(pet_id, additional_metadata, file) local req = http_request.new_from_uri({ scheme = self.default_scheme; host = self.host; path = string.format("%s/pet/%s/uploadImage", self.basePath, pet_id); }) -- set HTTP verb req.headers:upsert(":method", "POST") -- TODO: create a function to select proper accept -- ref: https://github.com/swagger-api/swagger-codegen/pull/6252#issuecomment-321199879 --local var_content_type = { "multipart/form-data" } req.headers:upsert("accept", "multipart/form-data") -- TODO: create a function to select proper content-type -- ref: https://github.com/swagger-api/swagger-codegen/pull/6252#issuecomment-321199879 --local var_accept = { "application/json" } req.headers:upsert("content-type", "application/json") req:set_body(http_util.dict_to_query({ ["additionalMetadata"] = additional_metadata; ["file"] = file; })) -- oAuth req.headers:upsert("authorization", "Bearer " .. self.access_token) -- make the HTTP call local headers, stream, errno = req:go() if not headers then return nil, stream, errno end local http_status = headers:get(":status") if http_status:sub(1,1) == "2" then local body, err, errno2 = stream:get_body_as_string() -- exception when getting the HTTP body if not body then return nil, err, errno2 end stream:shutdown() local result, _, err3 = dkjson.decode(body) -- exception when decoding the HTTP body if result == nil then return nil, err3 end return cast_api_response(result), headers else local body, err, errno2 = stream:get_body_as_string() if not body then return nil, err, errno2 end stream:shutdown() -- return the error message (http body) return nil, http_status, body end end