libkazv
users.hpp
Go to the documentation of this file.
1 /******************************************************************************
2  * THIS FILE IS GENERATED - ANY EDITS WILL BE OVERWRITTEN
3  */
4 
5 #pragma once
6 
7 #include "basejob.hpp"
8 
9 
10 namespace Kazv::Api {
11 
25 class SearchUserDirectoryJob : public BaseJob {
26 public:
27  // Inner data structures
28 
39  struct User
40  {
42  std::string userId;
44  std::optional<std::string> displayName;
46  std::optional<std::string> avatarUrl;
47 
48  };
49 
50 
51 
52 class JobResponse : public Response
53 {
54 
55 public:
57  bool success() const;
58 
59  // Result properties
60 
61 
62 
63 
65 immer::array<User> results() const;
66 
67 
69 bool limited() const;
70 
71 };
72  static constexpr auto needsAuth() {
73  return true
74  ;
75  }
76 
77 
78 // Construction/destruction
79 
88  explicit SearchUserDirectoryJob(std::string serverUrl
89  , std::string _accessToken
90  ,
91  std::string searchTerm , std::optional<int> limit = std::nullopt
92  );
93 
94 
96  );
97 
98  static BaseJob::Body buildBody(std::string searchTerm, std::optional<int> limit);
99 
100 
101 
102 
103 
106  };
108  }
109  namespace nlohmann
110  {
111  using namespace Kazv;
112  using namespace Kazv::Api;
113  template<>
114  struct adl_serializer<SearchUserDirectoryJob::User> {
115 
116  static void to_json(json& jo, const SearchUserDirectoryJob::User &pod)
117  {
118  if (! jo.is_object()) { jo = json::object(); }
119 
120 
121  jo["user_id"s] = pod.userId;
122 
123 
124  addToJsonIfNeeded(jo, "display_name"s, pod.displayName);
125 
126  addToJsonIfNeeded(jo, "avatar_url"s, pod.avatarUrl);
127  }
128 
129  static void from_json(const json &jo, SearchUserDirectoryJob::User& result)
130  {
131 
132  if (jo.contains("user_id"s)) {
133  result.userId = jo.at("user_id"s);
134  }
135  if (jo.contains("display_name"s)) {
136  result.displayName = jo.at("display_name"s);
137  }
138  if (jo.contains("avatar_url"s)) {
139  result.avatarUrl = jo.at("avatar_url"s);
140  }
141 
142  }
143 
144 };
145  }
146 
147  namespace Kazv::Api
148  {
149 
150 } // namespace Kazv::Api
Kazv::Api::SearchUserDirectoryJob::needsAuth
static constexpr auto needsAuth()
Definition: users.hpp:76
nlohmann
Definition: location.hpp:26
Kazv
Definition: location.hpp:10
Kazv::BaseJob::Query
Definition: basejob.hpp:90
Kazv::Api::SearchUserDirectoryJob::JobResponse::success
bool success() const
Definition: users.cpp:80
Kazv::Api::SearchUserDirectoryJob::SearchUserDirectoryJob
SearchUserDirectoryJob(std::string serverUrl, std::string _accessToken, std::string searchTerm, std::optional< int > limit=std::nullopt)
Searches the user directory.
Definition: users.cpp:43
nlohmann::adl_serializer< SearchUserDirectoryJob::User >::to_json
static void to_json(json &jo, const SearchUserDirectoryJob::User &pod)
Definition: users.hpp:116
Kazv::json
nlohmann::json json
Definition: jsonwrap.hpp:20
Kazv::Api
Definition: location.hpp:10
Kazv::Api::SearchUserDirectoryJob::User::avatarUrl
std::optional< std::string > avatarUrl
The avatar url, as an MXC, if one exists.
Definition: users.hpp:52
Kazv::Api::SearchUserDirectoryJob::JobResponse::limited
bool limited() const
Indicates if the result list has been truncated by the limit.
Definition: users.cpp:103
Kazv::Api::SearchUserDirectoryJob::JobResponse::results
immer::array< User > results() const
Ordered by rank and then whether or not profile info is available.
Definition: users.cpp:92
Kazv::Api::SearchUserDirectoryJob::User::userId
std::string userId
The user's matrix user ID.
Definition: users.hpp:48
Kazv::addToJsonIfNeeded
void addToJsonIfNeeded(json &j, std::string name, T &&arg)
Definition: types.hpp:80
basejob.hpp
Kazv::JsonWrap
Definition: jsonwrap.hpp:22
Kazv::Api::SearchUserDirectoryJob::User::displayName
std::optional< std::string > displayName
The display name of the user, if one exists.
Definition: users.hpp:50
Kazv::Api::SearchUserDirectoryJob::User
Performs a search for users.
Definition: users.hpp:43
Kazv::BaseJob::Body
::Kazv::Body Body
Definition: basejob.hpp:100
Kazv::Api::SearchUserDirectoryJob::JobResponse
Definition: users.hpp:56
Kazv::Api::SearchUserDirectoryJob
Searches the user directory.
Definition: users.hpp:27
Kazv::Api::SearchUserDirectoryJob::JobResponse::JobResponse
JobResponse(Response r)
Definition: users.cpp:77
nlohmann::adl_serializer< SearchUserDirectoryJob::User >::from_json
static void from_json(const json &jo, SearchUserDirectoryJob::User &result)
Definition: users.hpp:129
Kazv::Api::SearchUserDirectoryJob::buildQuery
static BaseJob::Query buildQuery()
Definition: users.cpp:15
Kazv::Response
Definition: basejob.hpp:50
Kazv::Api::SearchUserDirectoryJob::buildBody
static BaseJob::Body buildBody(std::string searchTerm, std::optional< int > limit)
Definition: users.cpp:23
Kazv::Api::SearchUserDirectoryJob::withData
SearchUserDirectoryJob withData(JsonWrap j) &&
Definition: users.cpp:63