@@ -39,18 +39,26 @@ Query::Query(appointmentsLoader&& getAppointments, tasksLoader&& getTasks, unrea
3939{
4040}
4141
42- void Query::loadAppointments () const
42+ void Query::loadAppointments (const std::shared_ptr<service::RequestState>& state ) const
4343{
44+ if (state)
45+ {
46+ auto todayState = std::static_pointer_cast<RequestState>(state);
47+
48+ todayState->appointmentsRequestId = todayState->requestId ;
49+ todayState->loadAppointmentsCount ++;
50+ }
51+
4452 if (_getAppointments)
4553 {
4654 _appointments = _getAppointments ();
4755 _getAppointments = nullptr ;
4856 }
4957}
5058
51- std::shared_ptr<Appointment> Query::findAppointment (std::shared_ptr<service::RequestState> state, const std::vector<uint8_t >& id) const
59+ std::shared_ptr<Appointment> Query::findAppointment (const std::shared_ptr<service::RequestState>& state, const std::vector<uint8_t >& id) const
5260{
53- loadAppointments ();
61+ loadAppointments (state );
5462
5563 for (const auto & appointment : _appointments)
5664 {
@@ -65,18 +73,26 @@ std::shared_ptr<Appointment> Query::findAppointment(std::shared_ptr<service::Req
6573 return nullptr ;
6674}
6775
68- void Query::loadTasks () const
76+ void Query::loadTasks (const std::shared_ptr<service::RequestState>& state ) const
6977{
78+ if (state)
79+ {
80+ auto todayState = std::static_pointer_cast<RequestState>(state);
81+
82+ todayState->tasksRequestId = todayState->requestId ;
83+ todayState->loadTasksCount ++;
84+ }
85+
7086 if (_getTasks)
7187 {
7288 _tasks = _getTasks ();
7389 _getTasks = nullptr ;
7490 }
7591}
7692
77- std::shared_ptr<Task> Query::findTask (std::shared_ptr<service::RequestState> state, const std::vector<uint8_t >& id) const
93+ std::shared_ptr<Task> Query::findTask (const std::shared_ptr<service::RequestState>& state, const std::vector<uint8_t >& id) const
7894{
79- loadTasks ();
95+ loadTasks (state );
8096
8197 for (const auto & task : _tasks)
8298 {
@@ -91,18 +107,26 @@ std::shared_ptr<Task> Query::findTask(std::shared_ptr<service::RequestState> sta
91107 return nullptr ;
92108}
93109
94- void Query::loadUnreadCounts () const
110+ void Query::loadUnreadCounts (const std::shared_ptr<service::RequestState>& state ) const
95111{
112+ if (state)
113+ {
114+ auto todayState = std::static_pointer_cast<RequestState>(state);
115+
116+ todayState->unreadCountsRequestId = todayState->requestId ;
117+ todayState->loadUnreadCountsCount ++;
118+ }
119+
96120 if (_getUnreadCounts)
97121 {
98122 _unreadCounts = _getUnreadCounts ();
99123 _getUnreadCounts = nullptr ;
100124 }
101125}
102126
103- std::shared_ptr<Folder> Query::findUnreadCount (std::shared_ptr<service::RequestState> state, const std::vector<uint8_t >& id) const
127+ std::shared_ptr<Folder> Query::findUnreadCount (const std::shared_ptr<service::RequestState>& state, const std::vector<uint8_t >& id) const
104128{
105- loadUnreadCounts ();
129+ loadUnreadCounts (state );
106130
107131 for (const auto & folder : _unreadCounts)
108132 {
@@ -117,7 +141,7 @@ std::shared_ptr<Folder> Query::findUnreadCount(std::shared_ptr<service::RequestS
117141 return nullptr ;
118142}
119143
120- std::future<std::shared_ptr<service::Object>> Query::getNode (std::shared_ptr<service::RequestState> state, std::vector<uint8_t >&& id) const
144+ std::future<std::shared_ptr<service::Object>> Query::getNode (const std::shared_ptr<service::RequestState>& state, std::vector<uint8_t >&& id) const
121145{
122146 std::promise<std::shared_ptr<service::Object>> promise;
123147 auto appointment = findAppointment (state, id);
@@ -154,7 +178,7 @@ struct EdgeConstraints
154178 using vec_type = std::vector<std::shared_ptr<_Object>>;
155179 using itr_type = typename vec_type::const_iterator;
156180
157- EdgeConstraints (std::shared_ptr<service::RequestState> state, const vec_type& objects)
181+ EdgeConstraints (const std::shared_ptr<service::RequestState>& state, const vec_type& objects)
158182 : _state(state)
159183 , _objects(objects)
160184 {
@@ -242,13 +266,13 @@ struct EdgeConstraints
242266 const vec_type& _objects;
243267};
244268
245- std::future<std::shared_ptr<object::AppointmentConnection>> Query::getAppointments (std::shared_ptr<service::RequestState> state, std::unique_ptr<int >&& first, std::unique_ptr<response::Value>&& after, std::unique_ptr<int >&& last, std::unique_ptr<response::Value>&& before) const
269+ std::future<std::shared_ptr<object::AppointmentConnection>> Query::getAppointments (const std::shared_ptr<service::RequestState>& state, std::unique_ptr<int >&& first, std::unique_ptr<response::Value>&& after, std::unique_ptr<int >&& last, std::unique_ptr<response::Value>&& before) const
246270{
247271 auto spThis = shared_from_this ();
248272 return std::async (std::launch::async,
249- [this , spThis](std::shared_ptr<service::RequestState> stateWrapped, std::unique_ptr<int >&& firstWrapped, std::unique_ptr<response::Value>&& afterWrapped, std::unique_ptr<int >&& lastWrapped, std::unique_ptr<response::Value>&& beforeWrapped)
273+ [this , spThis](const std::shared_ptr<service::RequestState>& stateWrapped, std::unique_ptr<int >&& firstWrapped, std::unique_ptr<response::Value>&& afterWrapped, std::unique_ptr<int >&& lastWrapped, std::unique_ptr<response::Value>&& beforeWrapped)
250274 {
251- loadAppointments ();
275+ loadAppointments (stateWrapped );
252276
253277 EdgeConstraints<Appointment, AppointmentConnection> constraints (stateWrapped, _appointments);
254278 auto connection = constraints (firstWrapped.get (), afterWrapped.get (), lastWrapped.get (), beforeWrapped.get ());
@@ -257,13 +281,13 @@ std::future<std::shared_ptr<object::AppointmentConnection>> Query::getAppointmen
257281 }, std::move (state), std::move (first), std::move (after), std::move (last), std::move (before));
258282}
259283
260- std::future<std::shared_ptr<object::TaskConnection>> Query::getTasks (std::shared_ptr<service::RequestState> state, std::unique_ptr<int >&& first, std::unique_ptr<response::Value>&& after, std::unique_ptr<int >&& last, std::unique_ptr<response::Value>&& before) const
284+ std::future<std::shared_ptr<object::TaskConnection>> Query::getTasks (const std::shared_ptr<service::RequestState>& state, std::unique_ptr<int >&& first, std::unique_ptr<response::Value>&& after, std::unique_ptr<int >&& last, std::unique_ptr<response::Value>&& before) const
261285{
262286 auto spThis = shared_from_this ();
263287 return std::async (std::launch::async,
264- [this , spThis](std::shared_ptr<service::RequestState> stateWrapped, std::unique_ptr<int >&& firstWrapped, std::unique_ptr<response::Value>&& afterWrapped, std::unique_ptr<int >&& lastWrapped, std::unique_ptr<response::Value>&& beforeWrapped)
288+ [this , spThis](const std::shared_ptr<service::RequestState>& stateWrapped, std::unique_ptr<int >&& firstWrapped, std::unique_ptr<response::Value>&& afterWrapped, std::unique_ptr<int >&& lastWrapped, std::unique_ptr<response::Value>&& beforeWrapped)
265289 {
266- loadTasks ();
290+ loadTasks (stateWrapped );
267291
268292 EdgeConstraints<Task, TaskConnection> constraints (stateWrapped, _tasks);
269293 auto connection = constraints (firstWrapped.get (), afterWrapped.get (), lastWrapped.get (), beforeWrapped.get ());
@@ -272,13 +296,13 @@ std::future<std::shared_ptr<object::TaskConnection>> Query::getTasks(std::shared
272296 }, std::move (state), std::move (first), std::move (after), std::move (last), std::move (before));
273297}
274298
275- std::future<std::shared_ptr<object::FolderConnection>> Query::getUnreadCounts (std::shared_ptr<service::RequestState> state, std::unique_ptr<int >&& first, std::unique_ptr<response::Value>&& after, std::unique_ptr<int >&& last, std::unique_ptr<response::Value>&& before) const
299+ std::future<std::shared_ptr<object::FolderConnection>> Query::getUnreadCounts (const std::shared_ptr<service::RequestState>& state, std::unique_ptr<int >&& first, std::unique_ptr<response::Value>&& after, std::unique_ptr<int >&& last, std::unique_ptr<response::Value>&& before) const
276300{
277301 auto spThis = shared_from_this ();
278302 return std::async (std::launch::async,
279- [this , spThis](std::shared_ptr<service::RequestState> stateWrapped, std::unique_ptr<int >&& firstWrapped, std::unique_ptr<response::Value>&& afterWrapped, std::unique_ptr<int >&& lastWrapped, std::unique_ptr<response::Value>&& beforeWrapped)
303+ [this , spThis](const std::shared_ptr<service::RequestState>& stateWrapped, std::unique_ptr<int >&& firstWrapped, std::unique_ptr<response::Value>&& afterWrapped, std::unique_ptr<int >&& lastWrapped, std::unique_ptr<response::Value>&& beforeWrapped)
280304 {
281- loadUnreadCounts ();
305+ loadUnreadCounts (stateWrapped );
282306
283307 EdgeConstraints<Folder, FolderConnection> constraints (stateWrapped, _unreadCounts);
284308 auto connection = constraints (firstWrapped.get (), afterWrapped.get (), lastWrapped.get (), beforeWrapped.get ());
@@ -287,7 +311,7 @@ std::future<std::shared_ptr<object::FolderConnection>> Query::getUnreadCounts(st
287311 }, std::move (state), std::move (first), std::move (after), std::move (last), std::move (before));
288312}
289313
290- std::future<std::vector<std::shared_ptr<object::Appointment>>> Query::getAppointmentsById (std::shared_ptr<service::RequestState> state, std::vector<std::vector<uint8_t >>&& ids) const
314+ std::future<std::vector<std::shared_ptr<object::Appointment>>> Query::getAppointmentsById (const std::shared_ptr<service::RequestState>& state, std::vector<std::vector<uint8_t >>&& ids) const
291315{
292316 std::promise<std::vector<std::shared_ptr<object::Appointment>>> promise;
293317 std::vector<std::shared_ptr<object::Appointment>> result (ids.size ());
@@ -302,7 +326,7 @@ std::future<std::vector<std::shared_ptr<object::Appointment>>> Query::getAppoint
302326 return promise.get_future ();
303327}
304328
305- std::future<std::vector<std::shared_ptr<object::Task>>> Query::getTasksById (std::shared_ptr<service::RequestState> state, std::vector<std::vector<uint8_t >>&& ids) const
329+ std::future<std::vector<std::shared_ptr<object::Task>>> Query::getTasksById (const std::shared_ptr<service::RequestState>& state, std::vector<std::vector<uint8_t >>&& ids) const
306330{
307331 std::promise<std::vector<std::shared_ptr<object::Task>>> promise;
308332 std::vector<std::shared_ptr<object::Task>> result (ids.size ());
@@ -317,7 +341,7 @@ std::future<std::vector<std::shared_ptr<object::Task>>> Query::getTasksById(std:
317341 return promise.get_future ();
318342}
319343
320- std::future<std::vector<std::shared_ptr<object::Folder>>> Query::getUnreadCountsById (std::shared_ptr<service::RequestState> state, std::vector<std::vector<uint8_t >>&& ids) const
344+ std::future<std::vector<std::shared_ptr<object::Folder>>> Query::getUnreadCountsById (const std::shared_ptr<service::RequestState>& state, std::vector<std::vector<uint8_t >>&& ids) const
321345{
322346 std::promise<std::vector<std::shared_ptr<object::Folder>>> promise;
323347 std::vector<std::shared_ptr<object::Folder>> result (ids.size ());
@@ -337,7 +361,7 @@ Mutation::Mutation(completeTaskMutation&& mutateCompleteTask)
337361{
338362}
339363
340- std::future<std::shared_ptr<object::CompleteTaskPayload>> Mutation::getCompleteTask (std::shared_ptr<service::RequestState> state, CompleteTaskInput&& input) const
364+ std::future<std::shared_ptr<object::CompleteTaskPayload>> Mutation::getCompleteTask (const std::shared_ptr<service::RequestState>& state, CompleteTaskInput&& input) const
341365{
342366 std::promise<std::shared_ptr<object::CompleteTaskPayload>> promise;
343367
0 commit comments