Program Listing for File CprApiClient.h

Return to documentation for file (axr.sdk/net/CprApiClient.h)

// Copyright (C) AcceleratXR, Inc. All rights reserved.
#pragma once

#include "IApiClient.h"
#include "../Configuration.h"
#include "../Exception.h"
#include "IHttpBody.h"
#include "HttpContent.h"

#include <memory>
#include <vector>

namespace axr {
namespace sdk {
namespace net {

class CprApiClient : public IApiClient
{
public:
    CprApiClient(std::shared_ptr<Configuration> configuration);
    virtual ~CprApiClient();

    virtual pplx::task<utility::string_t> Send(
        const utility::string_t& path,
        const HttpMethod method,
        const std::map<utility::string_t, utility::string_t>& queryParams,
        const std::shared_ptr<IHttpBody> postBody,
        const std::map<utility::string_t, utility::string_t>& headerParams,
        const utility::string_t& contentType
    ) override;

    virtual pplx::task<utility::string_t> SendForm(
        const utility::string_t& path,
        const HttpMethod method,
        const std::map<utility::string_t, utility::string_t>& formParams,
        const std::map<utility::string_t, utility::string_t>& queryParams,
        const std::map<utility::string_t, utility::string_t>& headerParams
    ) override;

    virtual pplx::task<utility::string_t> SendFile(
        const utility::string_t& path,
        const HttpMethod method,
        const std::map<utility::string_t, std::shared_ptr<HttpContent>>& fileParams,
        const std::map<utility::string_t, utility::string_t>& queryParams,
        const std::map<utility::string_t, utility::string_t>& headerParams,
        const utility::string_t& contentType
    ) override;

    virtual pplx::task<void> Delete(const utility::string_t& path, const std::map<utility::string_t, utility::string_t>& queryParams, const std::map<utility::string_t, utility::string_t>& headerParams) override;

    virtual pplx::task<Variant> Get(const utility::string_t& path, const std::map<utility::string_t, utility::string_t>& queryParams, const std::map<utility::string_t, utility::string_t>& headerParams) override;

    virtual pplx::task<std::uint64_t> Head(const utility::string_t& path, const std::map<utility::string_t, utility::string_t>& queryParams, const std::map<utility::string_t, utility::string_t>& headerParams) override;

    virtual pplx::task<Variant> Post(const utility::string_t& path, const Variant& json, const std::map<utility::string_t, utility::string_t>& headerParams) override;

    virtual pplx::task<Variant> Put(const utility::string_t& path, const Variant& json, const std::map<utility::string_t, utility::string_t>& headerParams) override;

protected:

    std::shared_ptr<Configuration> m_Configuration;
};

} // namespace net
} // namespace axr
} // namespace sdk