-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathweather_client.hpp
42 lines (32 loc) · 1.54 KB
/
weather_client.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/*
Основной объект, реализующий получения данных из api, из обработку и вывод
Конструктор класса присваивает api ключ к переменной apiKey
Используй метод getWeatherData(city) для извлечения данных о погоде из api
так как для извлечения данных о погоде, необходимо передавать коорд. города
данный метод в своём теле первостепенно вызывает метод getCityUser(city)
который извлекает из api коорд. юзера, после чего отправляется второй запрос по api
для получения данных о погоде и записи их в атрибут data
*/
#pragma once
#include "main.hpp"
class WeatherClient
{
private:
std::string apiKey;
bool isSuccess = true;
using json = nlohmann::json;
json data;
std::map<std::string, std::string> coords;
std::map<std::string, std::string> weatherInfo;
void getCityUser(const std::string &);
void getAPIdata(const std::string &);
static size_t writeCallback(void *, size_t, size_t, void *);
const void getAPIkey();
void proccessWeatherData();
public:
WeatherClient(/* args */);
~WeatherClient();
void getWeatherData(const std::string &city);
void printWeatherData(const bool &);
bool getIsSucess() const;
};