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 class AbstractInetClient;
16 
17 class GitHubAPI {
18 public:
19  struct User {
20  std::string login;
21  std::string avatar_url;
22  std::string name;
23  std::string email;
24  };
25 
27 
28  GitHubAPI(MainWindow *mainwindow)
29  : mainwindow_(mainwindow)
30  {
31  }
32 
33  QList<RepositorySearchResultItem> searchRepository(std::string q);
34 };
35 
36 
37 class GitHubRequestThread : public QThread {
38 private:
39  struct Private;
42 protected:
43  void run() override;
44 public:
46  ~GitHubRequestThread() override;
47  std::string url;
48  bool ok = false;
49  std::string text;
50  std::function<bool(std::string const &text)> callback;
51  void start();
52 };
53 
54 #endif // GITHUBAPI_H
Definition: inetclient.h:120
Definition: GitHubAPI.h:17
MainWindow * mainwindow_
Definition: GitHubAPI.h:26
GitHubAPI(MainWindow *mainwindow)
Definition: GitHubAPI.h:28
QList< RepositorySearchResultItem > searchRepository(std::string q)
Definition: GitHubAPI.cpp:68
Definition: GitHubAPI.h:37
void run() override
Definition: GitHubAPI.cpp:47
bool ok
Definition: GitHubAPI.h:48
std::string text
Definition: GitHubAPI.h:49
void start()
Definition: GitHubAPI.cpp:37
~GitHubRequestThread() override
Definition: GitHubAPI.cpp:27
AbstractInetClient * web()
Definition: GitHubAPI.cpp:32
GitHubRequestThread()
Definition: GitHubAPI.cpp:22
Private * m
Definition: GitHubAPI.h:39
std::function< bool(std::string const &text)> callback
Definition: GitHubAPI.h:50
std::string url
Definition: GitHubAPI.h:47
Definition: MainWindow.h:90
Definition: webclient.h:42
Definition: webclient.h:140
Definition: GitHubAPI.h:19
std::string email
Definition: GitHubAPI.h:23
std::string name
Definition: GitHubAPI.h:22
std::string avatar_url
Definition: GitHubAPI.h:21
std::string login
Definition: GitHubAPI.h:20
Definition: GitHubAPI.cpp:18