New api from upstream

This commit is contained in:
Guilherme Werner
2024-01-01 15:42:12 -03:00
parent 67b1d41f22
commit b2f1d3bef9
9 changed files with 198 additions and 18 deletions

33
include/tribufu/api.h Normal file
View File

@ -0,0 +1,33 @@
// Copyright (c) Tribufu. All Rights Reserved.
#pragma once
#include <tribufu/prelude.h>
#include <tribufu/options.h>
namespace tribufu
{
static const char *VERSION = "0.0.4";
static const char *API_URL = "https://api.tribufu.com";
class TRIBUFU_API TribufuApi
{
private:
std::string base_url;
TribufuApiOptions options;
HttpClient http;
public:
TribufuApi();
TribufuApi(std::string api_key);
TribufuApi(TribufuApiOptions options);
~TribufuApi();
static TribufuApi from_env();
static TribufuApi from_env(std::string prefix);
};
}

View File

@ -3,27 +3,21 @@
#pragma once
#include <tribufu/prelude.h>
const char *VERSION = "0.0.4";
#include <tribufu/api.h>
namespace tribufu
{
class TRIBUFU_API TribufuClient
class TRIBUFU_API TribufuClient : public TribufuApi
{
private:
uint64_t id;
std::string secret;
HttpClient http;
uint64_t client_id;
std::string client_secret;
public:
TribufuClient(uint64_t id, const std::string &secret);
~TribufuClient();
uint64_t get_id() const
{
return this->id;
}
void get_token();
uint64_t &get_client_id();
};
}

24
include/tribufu/options.h Normal file
View File

@ -0,0 +1,24 @@
// Copyright (c) Tribufu. All Rights Reserved.
#pragma once
#include <tribufu/prelude.h>
namespace tribufu
{
class TRIBUFU_API TribufuApiOptions
{
public:
std::string api_key;
std::string access_token;
std::string refresh_token;
float expires_in;
public:
TribufuApiOptions();
TribufuApiOptions(std::string api_key);
TribufuApiOptions(std::string access_token, std::string refresh_token, float expires_in);
TribufuApiOptions(std::string api_key, std::string access_token, std::string refresh_token, float expires_in);
~TribufuApiOptions();
};
}

22
include/tribufu/server.h Normal file
View File

@ -0,0 +1,22 @@
// Copyright (c) Tribufu. All Rights Reserved.
#pragma once
#include <tribufu/prelude.h>
#include <tribufu/client.h>
namespace tribufu
{
class TRIBUFU_API TribufuServer : public TribufuClient
{
private:
uint64_t server_id;
public:
TribufuServer(uint64_t server_id, uint64_t client_id, const std::string &client_secret);
~TribufuServer();
uint64_t &get_server_id();
};
}