suyu/src/web_service/web_backend.h

55 lines
1.6 KiB
C++
Raw Normal View History

2018-09-16 14:05:51 -04:00
// Copyright 2017 Citra Emulator Project
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
#pragma once
#include <memory>
2018-09-16 14:05:51 -04:00
#include <string>
namespace Common {
struct WebResult;
2018-09-16 14:05:51 -04:00
}
namespace WebService {
class Client {
public:
Client(std::string host, std::string username, std::string token);
~Client();
2018-09-16 14:05:51 -04:00
/**
* Posts JSON to the specified path.
* @param path the URL segment after the host address.
* @param data String of JSON data to use for the body of the POST request.
* @param allow_anonymous If true, allow anonymous unauthenticated requests.
* @return the result of the request.
*/
Common::WebResult PostJson(const std::string& path, const std::string& data,
bool allow_anonymous);
2018-09-16 14:05:51 -04:00
/**
* Gets JSON from the specified path.
* @param path the URL segment after the host address.
* @param allow_anonymous If true, allow anonymous unauthenticated requests.
* @return the result of the request.
*/
Common::WebResult GetJson(const std::string& path, bool allow_anonymous);
2018-09-16 14:05:51 -04:00
/**
* Deletes JSON to the specified path.
* @param path the URL segment after the host address.
* @param data String of JSON data to use for the body of the DELETE request.
* @param allow_anonymous If true, allow anonymous unauthenticated requests.
* @return the result of the request.
*/
Common::WebResult DeleteJson(const std::string& path, const std::string& data,
bool allow_anonymous);
2018-09-16 14:05:51 -04:00
private:
struct Impl;
std::unique_ptr<Impl> impl;
2018-09-16 14:05:51 -04:00
};
} // namespace WebService