Skip to content

Commit fa772a1

Browse files
committed
Fix #117 and cleanup includes
1 parent 6e4ae45 commit fa772a1

28 files changed

+246
-215
lines changed

include/graphqlservice/GraphQLResponse.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818

1919
#include <memory>
2020
#include <string>
21-
#include <vector>
2221
#include <unordered_map>
22+
#include <vector>
2323

2424
namespace graphql::response {
2525

include/graphqlservice/GraphQLService.h

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,23 +19,24 @@
1919
#include "graphqlservice/GraphQLParse.h"
2020
#include "graphqlservice/GraphQLResponse.h"
2121

22-
#include <memory>
23-
#include <optional>
24-
#include <variant>
25-
#include <string_view>
26-
#include <string>
27-
#include <sstream>
28-
#include <vector>
2922
#include <functional>
30-
#include <unordered_map>
31-
#include <unordered_set>
32-
#include <stdexcept>
33-
#include <type_traits>
3423
#include <future>
24+
#include <map>
25+
#include <memory>
3526
#include <mutex>
27+
#include <optional>
3628
#include <queue>
37-
#include <map>
3829
#include <set>
30+
#include <sstream>
31+
#include <string>
32+
#include <string_view>
33+
#include <stdexcept>
34+
#include <type_traits>
35+
#include <tuple>
36+
#include <unordered_map>
37+
#include <unordered_set>
38+
#include <variant>
39+
#include <vector>
3940

4041
namespace graphql::service {
4142

@@ -243,7 +244,7 @@ struct ResolverParams : SelectionSetParams
243244
};
244245

245246
using Resolver = std::function<std::future<response::Value>(ResolverParams&&)>;
246-
using ResolverMap = std::unordered_map<std::string, Resolver>;
247+
using ResolverMap = std::vector<std::pair<std::string_view, Resolver>>;
247248

248249
// Binary data and opaque strings like IDs are encoded in Base64.
249250
class Base64

samples/introspection/IntrospectionSchema.cpp

Lines changed: 32 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,15 @@
44
#include "graphqlservice/Introspection.h"
55

66
#include <algorithm>
7+
#include <array>
78
#include <functional>
9+
#include <stdexcept>
810
#include <sstream>
9-
#include <unordered_map>
10-
#include <exception>
11-
#include <array>
11+
#include <string_view>
12+
#include <tuple>
13+
#include <vector>
14+
15+
using namespace std::literals;
1216

1317
namespace graphql {
1418
namespace service {
@@ -118,12 +122,12 @@ Schema::Schema()
118122
: service::Object({
119123
"__Schema"
120124
}, {
121-
{ "types", [this](service::ResolverParams&& params) { return resolveTypes(std::move(params)); } },
122-
{ "queryType", [this](service::ResolverParams&& params) { return resolveQueryType(std::move(params)); } },
125+
{ "__typename", [this](service::ResolverParams&& params) { return resolve_typename(std::move(params)); } },
126+
{ "directives", [this](service::ResolverParams&& params) { return resolveDirectives(std::move(params)); } },
123127
{ "mutationType", [this](service::ResolverParams&& params) { return resolveMutationType(std::move(params)); } },
128+
{ "queryType", [this](service::ResolverParams&& params) { return resolveQueryType(std::move(params)); } },
124129
{ "subscriptionType", [this](service::ResolverParams&& params) { return resolveSubscriptionType(std::move(params)); } },
125-
{ "directives", [this](service::ResolverParams&& params) { return resolveDirectives(std::move(params)); } },
126-
{ "__typename", [this](service::ResolverParams&& params) { return resolve_typename(std::move(params)); } }
130+
{ "types", [this](service::ResolverParams&& params) { return resolveTypes(std::move(params)); } }
127131
})
128132
{
129133
}
@@ -182,16 +186,16 @@ Type::Type()
182186
: service::Object({
183187
"__Type"
184188
}, {
185-
{ "kind", [this](service::ResolverParams&& params) { return resolveKind(std::move(params)); } },
186-
{ "name", [this](service::ResolverParams&& params) { return resolveName(std::move(params)); } },
189+
{ "__typename", [this](service::ResolverParams&& params) { return resolve_typename(std::move(params)); } },
187190
{ "description", [this](service::ResolverParams&& params) { return resolveDescription(std::move(params)); } },
188-
{ "fields", [this](service::ResolverParams&& params) { return resolveFields(std::move(params)); } },
189-
{ "interfaces", [this](service::ResolverParams&& params) { return resolveInterfaces(std::move(params)); } },
190-
{ "possibleTypes", [this](service::ResolverParams&& params) { return resolvePossibleTypes(std::move(params)); } },
191191
{ "enumValues", [this](service::ResolverParams&& params) { return resolveEnumValues(std::move(params)); } },
192+
{ "fields", [this](service::ResolverParams&& params) { return resolveFields(std::move(params)); } },
192193
{ "inputFields", [this](service::ResolverParams&& params) { return resolveInputFields(std::move(params)); } },
194+
{ "interfaces", [this](service::ResolverParams&& params) { return resolveInterfaces(std::move(params)); } },
195+
{ "kind", [this](service::ResolverParams&& params) { return resolveKind(std::move(params)); } },
196+
{ "name", [this](service::ResolverParams&& params) { return resolveName(std::move(params)); } },
193197
{ "ofType", [this](service::ResolverParams&& params) { return resolveOfType(std::move(params)); } },
194-
{ "__typename", [this](service::ResolverParams&& params) { return resolve_typename(std::move(params)); } }
198+
{ "possibleTypes", [this](service::ResolverParams&& params) { return resolvePossibleTypes(std::move(params)); } }
195199
})
196200
{
197201
}
@@ -316,13 +320,13 @@ Field::Field()
316320
: service::Object({
317321
"__Field"
318322
}, {
319-
{ "name", [this](service::ResolverParams&& params) { return resolveName(std::move(params)); } },
320-
{ "description", [this](service::ResolverParams&& params) { return resolveDescription(std::move(params)); } },
323+
{ "__typename", [this](service::ResolverParams&& params) { return resolve_typename(std::move(params)); } },
321324
{ "args", [this](service::ResolverParams&& params) { return resolveArgs(std::move(params)); } },
322-
{ "type", [this](service::ResolverParams&& params) { return resolveType(std::move(params)); } },
323-
{ "isDeprecated", [this](service::ResolverParams&& params) { return resolveIsDeprecated(std::move(params)); } },
324325
{ "deprecationReason", [this](service::ResolverParams&& params) { return resolveDeprecationReason(std::move(params)); } },
325-
{ "__typename", [this](service::ResolverParams&& params) { return resolve_typename(std::move(params)); } }
326+
{ "description", [this](service::ResolverParams&& params) { return resolveDescription(std::move(params)); } },
327+
{ "isDeprecated", [this](service::ResolverParams&& params) { return resolveIsDeprecated(std::move(params)); } },
328+
{ "name", [this](service::ResolverParams&& params) { return resolveName(std::move(params)); } },
329+
{ "type", [this](service::ResolverParams&& params) { return resolveType(std::move(params)); } }
326330
})
327331
{
328332
}
@@ -390,11 +394,11 @@ InputValue::InputValue()
390394
: service::Object({
391395
"__InputValue"
392396
}, {
393-
{ "name", [this](service::ResolverParams&& params) { return resolveName(std::move(params)); } },
394-
{ "description", [this](service::ResolverParams&& params) { return resolveDescription(std::move(params)); } },
395-
{ "type", [this](service::ResolverParams&& params) { return resolveType(std::move(params)); } },
397+
{ "__typename", [this](service::ResolverParams&& params) { return resolve_typename(std::move(params)); } },
396398
{ "defaultValue", [this](service::ResolverParams&& params) { return resolveDefaultValue(std::move(params)); } },
397-
{ "__typename", [this](service::ResolverParams&& params) { return resolve_typename(std::move(params)); } }
399+
{ "description", [this](service::ResolverParams&& params) { return resolveDescription(std::move(params)); } },
400+
{ "name", [this](service::ResolverParams&& params) { return resolveName(std::move(params)); } },
401+
{ "type", [this](service::ResolverParams&& params) { return resolveType(std::move(params)); } }
398402
})
399403
{
400404
}
@@ -444,11 +448,11 @@ EnumValue::EnumValue()
444448
: service::Object({
445449
"__EnumValue"
446450
}, {
447-
{ "name", [this](service::ResolverParams&& params) { return resolveName(std::move(params)); } },
451+
{ "__typename", [this](service::ResolverParams&& params) { return resolve_typename(std::move(params)); } },
452+
{ "deprecationReason", [this](service::ResolverParams&& params) { return resolveDeprecationReason(std::move(params)); } },
448453
{ "description", [this](service::ResolverParams&& params) { return resolveDescription(std::move(params)); } },
449454
{ "isDeprecated", [this](service::ResolverParams&& params) { return resolveIsDeprecated(std::move(params)); } },
450-
{ "deprecationReason", [this](service::ResolverParams&& params) { return resolveDeprecationReason(std::move(params)); } },
451-
{ "__typename", [this](service::ResolverParams&& params) { return resolve_typename(std::move(params)); } }
455+
{ "name", [this](service::ResolverParams&& params) { return resolveName(std::move(params)); } }
452456
})
453457
{
454458
}
@@ -498,11 +502,11 @@ Directive::Directive()
498502
: service::Object({
499503
"__Directive"
500504
}, {
501-
{ "name", [this](service::ResolverParams&& params) { return resolveName(std::move(params)); } },
505+
{ "__typename", [this](service::ResolverParams&& params) { return resolve_typename(std::move(params)); } },
506+
{ "args", [this](service::ResolverParams&& params) { return resolveArgs(std::move(params)); } },
502507
{ "description", [this](service::ResolverParams&& params) { return resolveDescription(std::move(params)); } },
503508
{ "locations", [this](service::ResolverParams&& params) { return resolveLocations(std::move(params)); } },
504-
{ "args", [this](service::ResolverParams&& params) { return resolveArgs(std::move(params)); } },
505-
{ "__typename", [this](service::ResolverParams&& params) { return resolve_typename(std::move(params)); } }
509+
{ "name", [this](service::ResolverParams&& params) { return resolveName(std::move(params)); } }
506510
})
507511
{
508512
}

samples/separate/AppointmentConnectionObject.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77

88
#include <algorithm>
99
#include <functional>
10+
#include <stdexcept>
1011
#include <sstream>
1112
#include <unordered_map>
12-
#include <exception>
1313

1414
namespace graphql::today {
1515
namespace object {
@@ -18,9 +18,9 @@ AppointmentConnection::AppointmentConnection()
1818
: service::Object({
1919
"AppointmentConnection"
2020
}, {
21-
{ "pageInfo", [this](service::ResolverParams&& params) { return resolvePageInfo(std::move(params)); } },
21+
{ "__typename", [this](service::ResolverParams&& params) { return resolve_typename(std::move(params)); } },
2222
{ "edges", [this](service::ResolverParams&& params) { return resolveEdges(std::move(params)); } },
23-
{ "__typename", [this](service::ResolverParams&& params) { return resolve_typename(std::move(params)); } }
23+
{ "pageInfo", [this](service::ResolverParams&& params) { return resolvePageInfo(std::move(params)); } }
2424
})
2525
{
2626
}

samples/separate/AppointmentEdgeObject.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77

88
#include <algorithm>
99
#include <functional>
10+
#include <stdexcept>
1011
#include <sstream>
1112
#include <unordered_map>
12-
#include <exception>
1313

1414
namespace graphql::today {
1515
namespace object {
@@ -18,9 +18,9 @@ AppointmentEdge::AppointmentEdge()
1818
: service::Object({
1919
"AppointmentEdge"
2020
}, {
21-
{ "node", [this](service::ResolverParams&& params) { return resolveNode(std::move(params)); } },
21+
{ "__typename", [this](service::ResolverParams&& params) { return resolve_typename(std::move(params)); } },
2222
{ "cursor", [this](service::ResolverParams&& params) { return resolveCursor(std::move(params)); } },
23-
{ "__typename", [this](service::ResolverParams&& params) { return resolve_typename(std::move(params)); } }
23+
{ "node", [this](service::ResolverParams&& params) { return resolveNode(std::move(params)); } }
2424
})
2525
{
2626
}

samples/separate/AppointmentObject.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77

88
#include <algorithm>
99
#include <functional>
10+
#include <stdexcept>
1011
#include <sstream>
1112
#include <unordered_map>
12-
#include <exception>
1313

1414
namespace graphql::today {
1515
namespace object {
@@ -20,11 +20,11 @@ Appointment::Appointment()
2020
"UnionType",
2121
"Appointment"
2222
}, {
23+
{ "__typename", [this](service::ResolverParams&& params) { return resolve_typename(std::move(params)); } },
2324
{ "id", [this](service::ResolverParams&& params) { return resolveId(std::move(params)); } },
24-
{ "when", [this](service::ResolverParams&& params) { return resolveWhen(std::move(params)); } },
25-
{ "subject", [this](service::ResolverParams&& params) { return resolveSubject(std::move(params)); } },
2625
{ "isNow", [this](service::ResolverParams&& params) { return resolveIsNow(std::move(params)); } },
27-
{ "__typename", [this](service::ResolverParams&& params) { return resolve_typename(std::move(params)); } }
26+
{ "subject", [this](service::ResolverParams&& params) { return resolveSubject(std::move(params)); } },
27+
{ "when", [this](service::ResolverParams&& params) { return resolveWhen(std::move(params)); } }
2828
})
2929
{
3030
}

samples/separate/CompleteTaskPayloadObject.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77

88
#include <algorithm>
99
#include <functional>
10+
#include <stdexcept>
1011
#include <sstream>
1112
#include <unordered_map>
12-
#include <exception>
1313

1414
namespace graphql::today {
1515
namespace object {
@@ -18,9 +18,9 @@ CompleteTaskPayload::CompleteTaskPayload()
1818
: service::Object({
1919
"CompleteTaskPayload"
2020
}, {
21-
{ "task", [this](service::ResolverParams&& params) { return resolveTask(std::move(params)); } },
21+
{ "__typename", [this](service::ResolverParams&& params) { return resolve_typename(std::move(params)); } },
2222
{ "clientMutationId", [this](service::ResolverParams&& params) { return resolveClientMutationId(std::move(params)); } },
23-
{ "__typename", [this](service::ResolverParams&& params) { return resolve_typename(std::move(params)); } }
23+
{ "task", [this](service::ResolverParams&& params) { return resolveTask(std::move(params)); } }
2424
})
2525
{
2626
}

samples/separate/ExpensiveObject.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77

88
#include <algorithm>
99
#include <functional>
10+
#include <stdexcept>
1011
#include <sstream>
1112
#include <unordered_map>
12-
#include <exception>
1313

1414
namespace graphql::today {
1515
namespace object {
@@ -18,8 +18,8 @@ Expensive::Expensive()
1818
: service::Object({
1919
"Expensive"
2020
}, {
21-
{ "order", [this](service::ResolverParams&& params) { return resolveOrder(std::move(params)); } },
22-
{ "__typename", [this](service::ResolverParams&& params) { return resolve_typename(std::move(params)); } }
21+
{ "__typename", [this](service::ResolverParams&& params) { return resolve_typename(std::move(params)); } },
22+
{ "order", [this](service::ResolverParams&& params) { return resolveOrder(std::move(params)); } }
2323
})
2424
{
2525
}

samples/separate/FolderConnectionObject.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77

88
#include <algorithm>
99
#include <functional>
10+
#include <stdexcept>
1011
#include <sstream>
1112
#include <unordered_map>
12-
#include <exception>
1313

1414
namespace graphql::today {
1515
namespace object {
@@ -18,9 +18,9 @@ FolderConnection::FolderConnection()
1818
: service::Object({
1919
"FolderConnection"
2020
}, {
21-
{ "pageInfo", [this](service::ResolverParams&& params) { return resolvePageInfo(std::move(params)); } },
21+
{ "__typename", [this](service::ResolverParams&& params) { return resolve_typename(std::move(params)); } },
2222
{ "edges", [this](service::ResolverParams&& params) { return resolveEdges(std::move(params)); } },
23-
{ "__typename", [this](service::ResolverParams&& params) { return resolve_typename(std::move(params)); } }
23+
{ "pageInfo", [this](service::ResolverParams&& params) { return resolvePageInfo(std::move(params)); } }
2424
})
2525
{
2626
}

samples/separate/FolderEdgeObject.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77

88
#include <algorithm>
99
#include <functional>
10+
#include <stdexcept>
1011
#include <sstream>
1112
#include <unordered_map>
12-
#include <exception>
1313

1414
namespace graphql::today {
1515
namespace object {
@@ -18,9 +18,9 @@ FolderEdge::FolderEdge()
1818
: service::Object({
1919
"FolderEdge"
2020
}, {
21-
{ "node", [this](service::ResolverParams&& params) { return resolveNode(std::move(params)); } },
21+
{ "__typename", [this](service::ResolverParams&& params) { return resolve_typename(std::move(params)); } },
2222
{ "cursor", [this](service::ResolverParams&& params) { return resolveCursor(std::move(params)); } },
23-
{ "__typename", [this](service::ResolverParams&& params) { return resolve_typename(std::move(params)); } }
23+
{ "node", [this](service::ResolverParams&& params) { return resolveNode(std::move(params)); } }
2424
})
2525
{
2626
}

0 commit comments

Comments
 (0)