Guitar
GitHubAPI.h
Go to the documentation of this file.
1 #ifndef GITHUBAPI_H
2 #define GITHUBAPI_H
3 
5 
6 #include <QImage>
7 #include <QThread>
8 #include <string>
9 #include <functional>
10 #include <memory>
11 
12 class MainWindow;
13 class WebContext;
14 class WebClient;
15 
16 class GitHubAPI {
17 public:
18  using WebClientPtr = std::shared_ptr<WebClient>;
19 
20  struct User {
21  std::string login;
22  std::string avatar_url;
23  std::string name;
24  std::string email;
25  };
26 
28 
29  GitHubAPI(MainWindow *mainwindow)
30  : mainwindow_(mainwindow)
31  {
32  }
33 
34  QList<RepositorySearchResultItem> searchRepository(std::string q);
35 };
36 
37 
38 class GitHubRequestThread : public QThread {
39 private:
40  struct Private;
42 protected:
43  void run() override;
44 public:
46 public:
48  ~GitHubRequestThread() override;
49  std::string url;
50  bool ok = false;
51  std::string text;
52  std::function<bool(std::string const &text)> callback;
53  void start();
54 };
55 
56 #endif // GITHUBAPI_H
Definition: GitHubAPI.h:16
MainWindow * mainwindow_
Definition: GitHubAPI.h:27
GitHubAPI(MainWindow *mainwindow)
Definition: GitHubAPI.h:29
QList< RepositorySearchResultItem > searchRepository(std::string q)
Definition: GitHubAPI.cpp:68
std::shared_ptr< WebClient > WebClientPtr
Definition: GitHubAPI.h:18
Definition: GitHubAPI.h:38
void run() override
Definition: GitHubAPI.cpp:42
bool ok
Definition: GitHubAPI.h:50
std::string text
Definition: GitHubAPI.h:51
void start()
Definition: GitHubAPI.cpp:34
~GitHubRequestThread() override
Definition: GitHubAPI.cpp:29
GitHubRequestThread()
Definition: GitHubAPI.cpp:24
Private * m
Definition: GitHubAPI.h:40
std::function< bool(std::string const &text)> callback
Definition: GitHubAPI.h:52
GitHubAPI::WebClientPtr web()
Definition: GitHubAPI.cpp:63
std::string url
Definition: GitHubAPI.h:49
Definition: MainWindow.h:90
Definition: webclient.h:46
Definition: webclient.h:222
Definition: GitHubAPI.h:20
std::string email
Definition: GitHubAPI.h:24
std::string name
Definition: GitHubAPI.h:23
std::string avatar_url
Definition: GitHubAPI.h:22
std::string login
Definition: GitHubAPI.h:21
Definition: GitHubAPI.cpp:19