@@ -62,7 +62,7 @@ std::shared_ptr<Appointment> Query::findAppointment(const service::FieldParams&
62
62
63
63
for (const auto & appointment : _appointments)
64
64
{
65
- auto appointmentId = appointment->getId (params).get ();
65
+ auto appointmentId = appointment->getId (service::FieldParams ( params, response::Value (response::Type::Map)) ).get ();
66
66
67
67
if (appointmentId == id)
68
68
{
@@ -96,7 +96,7 @@ std::shared_ptr<Task> Query::findTask(const service::FieldParams& params, const
96
96
97
97
for (const auto & task : _tasks)
98
98
{
99
- auto taskId = task->getId (params).get ();
99
+ auto taskId = task->getId (service::FieldParams ( params, response::Value (response::Type::Map)) ).get ();
100
100
101
101
if (taskId == id)
102
102
{
@@ -130,7 +130,7 @@ std::shared_ptr<Folder> Query::findUnreadCount(const service::FieldParams& param
130
130
131
131
for (const auto & folder : _unreadCounts)
132
132
{
133
- auto folderId = folder->getId (params).get ();
133
+ auto folderId = folder->getId (service::FieldParams ( params, response::Value (response::Type::Map)) ).get ();
134
134
135
135
if (folderId == id)
136
136
{
@@ -141,7 +141,7 @@ std::shared_ptr<Folder> Query::findUnreadCount(const service::FieldParams& param
141
141
return nullptr ;
142
142
}
143
143
144
- std::future<std::shared_ptr<service::Object>> Query::getNode (const service::FieldParams& params, std::vector<uint8_t >&& id) const
144
+ std::future<std::shared_ptr<service::Object>> Query::getNode (service::FieldParams& & params, std::vector<uint8_t >&& id) const
145
145
{
146
146
std::promise<std::shared_ptr<service::Object>> promise;
147
147
auto appointment = findAppointment (params, id);
@@ -197,16 +197,15 @@ struct EdgeConstraints
197
197
unusedDirectives,
198
198
unusedDirectives,
199
199
};
200
- const service::FieldParams fieldParams (selectionSetParams, {});
201
200
202
201
if (after)
203
202
{
204
203
const auto & encoded = after->get <const response::StringType&>();
205
204
auto afterId = service::Base64::fromBase64 (encoded.c_str (), encoded.size ());
206
205
auto itrAfter = std::find_if (itrFirst, itrLast,
207
- [this , &fieldParams , &afterId](const std::shared_ptr<_Object>& entry)
206
+ [this , &selectionSetParams , &afterId](const std::shared_ptr<_Object>& entry)
208
207
{
209
- return entry->getId (fieldParams ).get () == afterId;
208
+ return entry->getId (service::FieldParams (selectionSetParams, {}) ).get () == afterId;
210
209
});
211
210
212
211
if (itrAfter != itrLast)
@@ -220,9 +219,9 @@ struct EdgeConstraints
220
219
const auto & encoded = before->get <const response::StringType&>();
221
220
auto beforeId = service::Base64::fromBase64 (encoded.c_str (), encoded.size ());
222
221
auto itrBefore = std::find_if (itrFirst, itrLast,
223
- [this , &fieldParams , &beforeId](const std::shared_ptr<_Object>& entry)
222
+ [this , &selectionSetParams , &beforeId](const std::shared_ptr<_Object>& entry)
224
223
{
225
- return entry->getId (fieldParams ).get () == beforeId;
224
+ return entry->getId (service::FieldParams (selectionSetParams, {}) ).get () == beforeId;
226
225
});
227
226
228
227
if (itrBefore != itrLast)
@@ -276,7 +275,7 @@ struct EdgeConstraints
276
275
const vec_type& _objects;
277
276
};
278
277
279
- std::future<std::shared_ptr<object::AppointmentConnection>> Query::getAppointments (const service::FieldParams& params, std::unique_ptr<int >&& first, std::unique_ptr<response::Value>&& after, std::unique_ptr<int >&& last, std::unique_ptr<response::Value>&& before) const
278
+ std::future<std::shared_ptr<object::AppointmentConnection>> Query::getAppointments (service::FieldParams& & params, std::unique_ptr<int >&& first, std::unique_ptr<response::Value>&& after, std::unique_ptr<int >&& last, std::unique_ptr<response::Value>&& before) const
280
279
{
281
280
auto spThis = shared_from_this ();
282
281
auto state = params.state ;
@@ -292,7 +291,7 @@ std::future<std::shared_ptr<object::AppointmentConnection>> Query::getAppointmen
292
291
}, std::move (first), std::move (after), std::move (last), std::move (before));
293
292
}
294
293
295
- std::future<std::shared_ptr<object::TaskConnection>> Query::getTasks (const service::FieldParams& params, std::unique_ptr<int >&& first, std::unique_ptr<response::Value>&& after, std::unique_ptr<int >&& last, std::unique_ptr<response::Value>&& before) const
294
+ std::future<std::shared_ptr<object::TaskConnection>> Query::getTasks (service::FieldParams& & params, std::unique_ptr<int >&& first, std::unique_ptr<response::Value>&& after, std::unique_ptr<int >&& last, std::unique_ptr<response::Value>&& before) const
296
295
{
297
296
auto spThis = shared_from_this ();
298
297
auto state = params.state ;
@@ -308,7 +307,7 @@ std::future<std::shared_ptr<object::TaskConnection>> Query::getTasks(const servi
308
307
}, std::move (first), std::move (after), std::move (last), std::move (before));
309
308
}
310
309
311
- std::future<std::shared_ptr<object::FolderConnection>> Query::getUnreadCounts (const service::FieldParams& params, std::unique_ptr<int >&& first, std::unique_ptr<response::Value>&& after, std::unique_ptr<int >&& last, std::unique_ptr<response::Value>&& before) const
310
+ std::future<std::shared_ptr<object::FolderConnection>> Query::getUnreadCounts (service::FieldParams& & params, std::unique_ptr<int >&& first, std::unique_ptr<response::Value>&& after, std::unique_ptr<int >&& last, std::unique_ptr<response::Value>&& before) const
312
311
{
313
312
auto spThis = shared_from_this ();
314
313
auto state = params.state ;
@@ -324,7 +323,7 @@ std::future<std::shared_ptr<object::FolderConnection>> Query::getUnreadCounts(co
324
323
}, std::move (first), std::move (after), std::move (last), std::move (before));
325
324
}
326
325
327
- std::future<std::vector<std::shared_ptr<object::Appointment>>> Query::getAppointmentsById (const service::FieldParams& params, std::vector<std::vector<uint8_t >>&& ids) const
326
+ std::future<std::vector<std::shared_ptr<object::Appointment>>> Query::getAppointmentsById (service::FieldParams& & params, std::vector<std::vector<uint8_t >>&& ids) const
328
327
{
329
328
std::promise<std::vector<std::shared_ptr<object::Appointment>>> promise;
330
329
std::vector<std::shared_ptr<object::Appointment>> result (ids.size ());
@@ -339,7 +338,7 @@ std::future<std::vector<std::shared_ptr<object::Appointment>>> Query::getAppoint
339
338
return promise.get_future ();
340
339
}
341
340
342
- std::future<std::vector<std::shared_ptr<object::Task>>> Query::getTasksById (const service::FieldParams& params, std::vector<std::vector<uint8_t >>&& ids) const
341
+ std::future<std::vector<std::shared_ptr<object::Task>>> Query::getTasksById (service::FieldParams& & params, std::vector<std::vector<uint8_t >>&& ids) const
343
342
{
344
343
std::promise<std::vector<std::shared_ptr<object::Task>>> promise;
345
344
std::vector<std::shared_ptr<object::Task>> result (ids.size ());
@@ -354,7 +353,7 @@ std::future<std::vector<std::shared_ptr<object::Task>>> Query::getTasksById(cons
354
353
return promise.get_future ();
355
354
}
356
355
357
- std::future<std::vector<std::shared_ptr<object::Folder>>> Query::getUnreadCountsById (const service::FieldParams& params, std::vector<std::vector<uint8_t >>&& ids) const
356
+ std::future<std::vector<std::shared_ptr<object::Folder>>> Query::getUnreadCountsById (service::FieldParams& & params, std::vector<std::vector<uint8_t >>&& ids) const
358
357
{
359
358
std::promise<std::vector<std::shared_ptr<object::Folder>>> promise;
360
359
std::vector<std::shared_ptr<object::Folder>> result (ids.size ());
@@ -369,12 +368,21 @@ std::future<std::vector<std::shared_ptr<object::Folder>>> Query::getUnreadCounts
369
368
return promise.get_future ();
370
369
}
371
370
371
+ std::future<std::shared_ptr<object::NestedType>> Query::getNested (service::FieldParams&& params) const
372
+ {
373
+ std::promise<std::shared_ptr<object::NestedType>> promise;
374
+
375
+ promise.set_value (std::make_shared<NestedType>(std::move (params), 1 ));
376
+
377
+ return promise.get_future ();
378
+ }
379
+
372
380
Mutation::Mutation (completeTaskMutation&& mutateCompleteTask)
373
381
: _mutateCompleteTask(std::move(mutateCompleteTask))
374
382
{
375
383
}
376
384
377
- std::future<std::shared_ptr<object::CompleteTaskPayload>> Mutation::getCompleteTask (const service::FieldParams& params, CompleteTaskInput&& input) const
385
+ std::future<std::shared_ptr<object::CompleteTaskPayload>> Mutation::getCompleteTask (service::FieldParams& & params, CompleteTaskInput&& input) const
378
386
{
379
387
std::promise<std::shared_ptr<object::CompleteTaskPayload>> promise;
380
388
@@ -383,6 +391,45 @@ std::future<std::shared_ptr<object::CompleteTaskPayload>> Mutation::getCompleteT
383
391
return promise.get_future ();
384
392
}
385
393
394
+ std::stack<CapturedParams> NestedType::_capturedParams;
395
+
396
+ NestedType::NestedType (service::FieldParams&& params, int depth)
397
+ : depth(depth)
398
+ {
399
+ _capturedParams.push ({
400
+ response::Value (params.operationDirectives ),
401
+ response::Value (params.fragmentDefinitionDirectives ),
402
+ response::Value (params.fragmentSpreadDirectives ),
403
+ response::Value (params.inlineFragmentDirectives ),
404
+ std::move (params.fieldDirectives )
405
+ });
406
+ }
407
+
408
+ std::future<response::IntType> NestedType::getDepth (service::FieldParams&& params) const
409
+ {
410
+ std::promise<response::IntType> promise;
411
+
412
+ promise.set_value (depth);
413
+
414
+ return promise.get_future ();
415
+ }
416
+
417
+ std::future<std::shared_ptr<object::NestedType>> NestedType::getNested (service::FieldParams&& params) const
418
+ {
419
+ std::promise<std::shared_ptr<object::NestedType>> promise;
420
+
421
+ promise.set_value (std::make_shared<NestedType>(std::move (params), depth + 1 ));
422
+
423
+ return promise.get_future ();
424
+ }
425
+
426
+ std::stack<CapturedParams> NestedType::getCapturedParams ()
427
+ {
428
+ auto result = std::move (_capturedParams);
429
+
430
+ return result;
431
+ }
432
+
386
433
} /* namespace today */
387
434
} /* namespace graphql */
388
435
} /* namespace facebook */
0 commit comments