Skip to content

Commit dc8e6ad

Browse files
committed
Test schemagen with sample in #225
1 parent cbb9ab6 commit dc8e6ad

File tree

5 files changed

+155
-0
lines changed

5 files changed

+155
-0
lines changed

samples/today/nointrospection/TodaySchema.cpp

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,38 @@ today::IncludeNonNullableListSelfInput ModifiedArgument<today::IncludeNonNullabl
145145
};
146146
}
147147

148+
template <>
149+
today::StringOperationFilterInput ModifiedArgument<today::StringOperationFilterInput>::convert(const response::Value& value)
150+
{
151+
auto valueAnd_ = service::ModifiedArgument<today::StringOperationFilterInput>::require<service::TypeModifier::Nullable, service::TypeModifier::List>("and", value);
152+
auto valueOr_ = service::ModifiedArgument<today::StringOperationFilterInput>::require<service::TypeModifier::Nullable, service::TypeModifier::List>("or", value);
153+
auto valueEqual = service::ModifiedArgument<std::string>::require<service::TypeModifier::Nullable>("equal", value);
154+
auto valueNotEqual = service::ModifiedArgument<std::string>::require<service::TypeModifier::Nullable>("notEqual", value);
155+
auto valueContains = service::ModifiedArgument<std::string>::require<service::TypeModifier::Nullable>("contains", value);
156+
auto valueNotContains = service::ModifiedArgument<std::string>::require<service::TypeModifier::Nullable>("notContains", value);
157+
auto valueIn = service::ModifiedArgument<std::string>::require<service::TypeModifier::Nullable, service::TypeModifier::List>("in", value);
158+
auto valueNotIn = service::ModifiedArgument<std::string>::require<service::TypeModifier::Nullable, service::TypeModifier::List>("notIn", value);
159+
auto valueStartsWith = service::ModifiedArgument<std::string>::require<service::TypeModifier::Nullable>("startsWith", value);
160+
auto valueNotStartsWith = service::ModifiedArgument<std::string>::require<service::TypeModifier::Nullable>("notStartsWith", value);
161+
auto valueEndsWith = service::ModifiedArgument<std::string>::require<service::TypeModifier::Nullable>("endsWith", value);
162+
auto valueNotEndsWith = service::ModifiedArgument<std::string>::require<service::TypeModifier::Nullable>("notEndsWith", value);
163+
164+
return {
165+
std::move(valueAnd_),
166+
std::move(valueOr_),
167+
std::move(valueEqual),
168+
std::move(valueNotEqual),
169+
std::move(valueContains),
170+
std::move(valueNotContains),
171+
std::move(valueIn),
172+
std::move(valueNotIn),
173+
std::move(valueStartsWith),
174+
std::move(valueNotStartsWith),
175+
std::move(valueEndsWith),
176+
std::move(valueNotEndsWith)
177+
};
178+
}
179+
148180
template <>
149181
today::SecondNestedInput ModifiedArgument<today::SecondNestedInput>::convert(const response::Value& value)
150182
{
@@ -215,6 +247,8 @@ void AddTypesToSchema(const std::shared_ptr<schema::Schema>& schema)
215247
schema->AddType(R"gql(IncludeNullableSelfInput)gql"sv, typeIncludeNullableSelfInput);
216248
auto typeIncludeNonNullableListSelfInput = schema::InputObjectType::Make(R"gql(IncludeNonNullableListSelfInput)gql"sv, R"md()md"sv);
217249
schema->AddType(R"gql(IncludeNonNullableListSelfInput)gql"sv, typeIncludeNonNullableListSelfInput);
250+
auto typeStringOperationFilterInput = schema::InputObjectType::Make(R"gql(StringOperationFilterInput)gql"sv, R"md()md"sv);
251+
schema->AddType(R"gql(StringOperationFilterInput)gql"sv, typeStringOperationFilterInput);
218252
auto typeSecondNestedInput = schema::InputObjectType::Make(R"gql(SecondNestedInput)gql"sv, R"md()md"sv);
219253
schema->AddType(R"gql(SecondNestedInput)gql"sv, typeSecondNestedInput);
220254
auto typeForwardDeclaredInput = schema::InputObjectType::Make(R"gql(ForwardDeclaredInput)gql"sv, R"md()md"sv);
@@ -283,6 +317,20 @@ void AddTypesToSchema(const std::shared_ptr<schema::Schema>& schema)
283317
typeIncludeNonNullableListSelfInput->AddInputValues({
284318
schema::InputValue::Make(R"gql(selves)gql"sv, R"md()md"sv, schema->WrapType(introspection::TypeKind::NON_NULL, schema->WrapType(introspection::TypeKind::LIST, schema->WrapType(introspection::TypeKind::NON_NULL, schema->LookupType(R"gql(IncludeNonNullableListSelfInput)gql"sv)))), R"gql()gql"sv)
285319
});
320+
typeStringOperationFilterInput->AddInputValues({
321+
schema::InputValue::Make(R"gql(and)gql"sv, R"md()md"sv, schema->WrapType(introspection::TypeKind::LIST, schema->WrapType(introspection::TypeKind::NON_NULL, schema->LookupType(R"gql(StringOperationFilterInput)gql"sv))), R"gql()gql"sv),
322+
schema::InputValue::Make(R"gql(or)gql"sv, R"md()md"sv, schema->WrapType(introspection::TypeKind::LIST, schema->WrapType(introspection::TypeKind::NON_NULL, schema->LookupType(R"gql(StringOperationFilterInput)gql"sv))), R"gql()gql"sv),
323+
schema::InputValue::Make(R"gql(equal)gql"sv, R"md()md"sv, schema->LookupType(R"gql(String)gql"sv), R"gql()gql"sv),
324+
schema::InputValue::Make(R"gql(notEqual)gql"sv, R"md()md"sv, schema->LookupType(R"gql(String)gql"sv), R"gql()gql"sv),
325+
schema::InputValue::Make(R"gql(contains)gql"sv, R"md()md"sv, schema->LookupType(R"gql(String)gql"sv), R"gql()gql"sv),
326+
schema::InputValue::Make(R"gql(notContains)gql"sv, R"md()md"sv, schema->LookupType(R"gql(String)gql"sv), R"gql()gql"sv),
327+
schema::InputValue::Make(R"gql(in)gql"sv, R"md()md"sv, schema->WrapType(introspection::TypeKind::LIST, schema->WrapType(introspection::TypeKind::NON_NULL, schema->LookupType(R"gql(String)gql"sv))), R"gql()gql"sv),
328+
schema::InputValue::Make(R"gql(notIn)gql"sv, R"md()md"sv, schema->WrapType(introspection::TypeKind::LIST, schema->WrapType(introspection::TypeKind::NON_NULL, schema->LookupType(R"gql(String)gql"sv))), R"gql()gql"sv),
329+
schema::InputValue::Make(R"gql(startsWith)gql"sv, R"md()md"sv, schema->LookupType(R"gql(String)gql"sv), R"gql()gql"sv),
330+
schema::InputValue::Make(R"gql(notStartsWith)gql"sv, R"md()md"sv, schema->LookupType(R"gql(String)gql"sv), R"gql()gql"sv),
331+
schema::InputValue::Make(R"gql(endsWith)gql"sv, R"md()md"sv, schema->LookupType(R"gql(String)gql"sv), R"gql()gql"sv),
332+
schema::InputValue::Make(R"gql(notEndsWith)gql"sv, R"md()md"sv, schema->LookupType(R"gql(String)gql"sv), R"gql()gql"sv)
333+
});
286334
typeSecondNestedInput->AddInputValues({
287335
schema::InputValue::Make(R"gql(id)gql"sv, R"md()md"sv, schema->WrapType(introspection::TypeKind::NON_NULL, schema->LookupType(R"gql(ID)gql"sv)), R"gql()gql"sv),
288336
schema::InputValue::Make(R"gql(third)gql"sv, R"md()md"sv, schema->WrapType(introspection::TypeKind::NON_NULL, schema->LookupType(R"gql(ThirdNestedInput)gql"sv)), R"gql()gql"sv)

samples/today/nointrospection/TodaySchema.h

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,22 @@ struct IncludeNonNullableListSelfInput
7070
std::vector<IncludeNonNullableListSelfInput> selves {};
7171
};
7272

73+
struct StringOperationFilterInput
74+
{
75+
std::optional<std::vector<StringOperationFilterInput>> and_ {};
76+
std::optional<std::vector<StringOperationFilterInput>> or_ {};
77+
std::optional<std::string> equal {};
78+
std::optional<std::string> notEqual {};
79+
std::optional<std::string> contains {};
80+
std::optional<std::string> notContains {};
81+
std::optional<std::vector<std::string>> in {};
82+
std::optional<std::vector<std::string>> notIn {};
83+
std::optional<std::string> startsWith {};
84+
std::optional<std::string> notStartsWith {};
85+
std::optional<std::string> endsWith {};
86+
std::optional<std::string> notEndsWith {};
87+
};
88+
7389
struct SecondNestedInput
7490
{
7591
response::IdType id {};
@@ -189,6 +205,12 @@ constexpr bool isInputType<today::IncludeNonNullableListSelfInput>() noexcept
189205
return true;
190206
}
191207

208+
template <>
209+
constexpr bool isInputType<today::StringOperationFilterInput>() noexcept
210+
{
211+
return true;
212+
}
213+
192214
template <>
193215
constexpr bool isInputType<today::SecondNestedInput>() noexcept
194216
{

samples/today/schema.today.graphql

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,3 +197,18 @@ input IncludeNullableSelfInput {
197197
input IncludeNonNullableListSelfInput {
198198
selves: [IncludeNonNullableListSelfInput!]!
199199
}
200+
201+
input StringOperationFilterInput {
202+
and: [StringOperationFilterInput!]
203+
or: [StringOperationFilterInput!]
204+
equal: String
205+
notEqual: String
206+
contains: String
207+
notContains: String
208+
in: [String!]
209+
notIn: [String!]
210+
startsWith: String
211+
notStartsWith: String
212+
endsWith: String
213+
notEndsWith: String
214+
}

samples/today/schema/TodaySchema.cpp

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,38 @@ today::IncludeNonNullableListSelfInput ModifiedArgument<today::IncludeNonNullabl
145145
};
146146
}
147147

148+
template <>
149+
today::StringOperationFilterInput ModifiedArgument<today::StringOperationFilterInput>::convert(const response::Value& value)
150+
{
151+
auto valueAnd_ = service::ModifiedArgument<today::StringOperationFilterInput>::require<service::TypeModifier::Nullable, service::TypeModifier::List>("and", value);
152+
auto valueOr_ = service::ModifiedArgument<today::StringOperationFilterInput>::require<service::TypeModifier::Nullable, service::TypeModifier::List>("or", value);
153+
auto valueEqual = service::ModifiedArgument<std::string>::require<service::TypeModifier::Nullable>("equal", value);
154+
auto valueNotEqual = service::ModifiedArgument<std::string>::require<service::TypeModifier::Nullable>("notEqual", value);
155+
auto valueContains = service::ModifiedArgument<std::string>::require<service::TypeModifier::Nullable>("contains", value);
156+
auto valueNotContains = service::ModifiedArgument<std::string>::require<service::TypeModifier::Nullable>("notContains", value);
157+
auto valueIn = service::ModifiedArgument<std::string>::require<service::TypeModifier::Nullable, service::TypeModifier::List>("in", value);
158+
auto valueNotIn = service::ModifiedArgument<std::string>::require<service::TypeModifier::Nullable, service::TypeModifier::List>("notIn", value);
159+
auto valueStartsWith = service::ModifiedArgument<std::string>::require<service::TypeModifier::Nullable>("startsWith", value);
160+
auto valueNotStartsWith = service::ModifiedArgument<std::string>::require<service::TypeModifier::Nullable>("notStartsWith", value);
161+
auto valueEndsWith = service::ModifiedArgument<std::string>::require<service::TypeModifier::Nullable>("endsWith", value);
162+
auto valueNotEndsWith = service::ModifiedArgument<std::string>::require<service::TypeModifier::Nullable>("notEndsWith", value);
163+
164+
return {
165+
std::move(valueAnd_),
166+
std::move(valueOr_),
167+
std::move(valueEqual),
168+
std::move(valueNotEqual),
169+
std::move(valueContains),
170+
std::move(valueNotContains),
171+
std::move(valueIn),
172+
std::move(valueNotIn),
173+
std::move(valueStartsWith),
174+
std::move(valueNotStartsWith),
175+
std::move(valueEndsWith),
176+
std::move(valueNotEndsWith)
177+
};
178+
}
179+
148180
template <>
149181
today::SecondNestedInput ModifiedArgument<today::SecondNestedInput>::convert(const response::Value& value)
150182
{
@@ -215,6 +247,8 @@ void AddTypesToSchema(const std::shared_ptr<schema::Schema>& schema)
215247
schema->AddType(R"gql(IncludeNullableSelfInput)gql"sv, typeIncludeNullableSelfInput);
216248
auto typeIncludeNonNullableListSelfInput = schema::InputObjectType::Make(R"gql(IncludeNonNullableListSelfInput)gql"sv, R"md()md"sv);
217249
schema->AddType(R"gql(IncludeNonNullableListSelfInput)gql"sv, typeIncludeNonNullableListSelfInput);
250+
auto typeStringOperationFilterInput = schema::InputObjectType::Make(R"gql(StringOperationFilterInput)gql"sv, R"md()md"sv);
251+
schema->AddType(R"gql(StringOperationFilterInput)gql"sv, typeStringOperationFilterInput);
218252
auto typeSecondNestedInput = schema::InputObjectType::Make(R"gql(SecondNestedInput)gql"sv, R"md()md"sv);
219253
schema->AddType(R"gql(SecondNestedInput)gql"sv, typeSecondNestedInput);
220254
auto typeForwardDeclaredInput = schema::InputObjectType::Make(R"gql(ForwardDeclaredInput)gql"sv, R"md()md"sv);
@@ -286,6 +320,20 @@ void AddTypesToSchema(const std::shared_ptr<schema::Schema>& schema)
286320
typeIncludeNonNullableListSelfInput->AddInputValues({
287321
schema::InputValue::Make(R"gql(selves)gql"sv, R"md()md"sv, schema->WrapType(introspection::TypeKind::NON_NULL, schema->WrapType(introspection::TypeKind::LIST, schema->WrapType(introspection::TypeKind::NON_NULL, schema->LookupType(R"gql(IncludeNonNullableListSelfInput)gql"sv)))), R"gql()gql"sv)
288322
});
323+
typeStringOperationFilterInput->AddInputValues({
324+
schema::InputValue::Make(R"gql(and)gql"sv, R"md()md"sv, schema->WrapType(introspection::TypeKind::LIST, schema->WrapType(introspection::TypeKind::NON_NULL, schema->LookupType(R"gql(StringOperationFilterInput)gql"sv))), R"gql()gql"sv),
325+
schema::InputValue::Make(R"gql(or)gql"sv, R"md()md"sv, schema->WrapType(introspection::TypeKind::LIST, schema->WrapType(introspection::TypeKind::NON_NULL, schema->LookupType(R"gql(StringOperationFilterInput)gql"sv))), R"gql()gql"sv),
326+
schema::InputValue::Make(R"gql(equal)gql"sv, R"md()md"sv, schema->LookupType(R"gql(String)gql"sv), R"gql()gql"sv),
327+
schema::InputValue::Make(R"gql(notEqual)gql"sv, R"md()md"sv, schema->LookupType(R"gql(String)gql"sv), R"gql()gql"sv),
328+
schema::InputValue::Make(R"gql(contains)gql"sv, R"md()md"sv, schema->LookupType(R"gql(String)gql"sv), R"gql()gql"sv),
329+
schema::InputValue::Make(R"gql(notContains)gql"sv, R"md()md"sv, schema->LookupType(R"gql(String)gql"sv), R"gql()gql"sv),
330+
schema::InputValue::Make(R"gql(in)gql"sv, R"md()md"sv, schema->WrapType(introspection::TypeKind::LIST, schema->WrapType(introspection::TypeKind::NON_NULL, schema->LookupType(R"gql(String)gql"sv))), R"gql()gql"sv),
331+
schema::InputValue::Make(R"gql(notIn)gql"sv, R"md()md"sv, schema->WrapType(introspection::TypeKind::LIST, schema->WrapType(introspection::TypeKind::NON_NULL, schema->LookupType(R"gql(String)gql"sv))), R"gql()gql"sv),
332+
schema::InputValue::Make(R"gql(startsWith)gql"sv, R"md()md"sv, schema->LookupType(R"gql(String)gql"sv), R"gql()gql"sv),
333+
schema::InputValue::Make(R"gql(notStartsWith)gql"sv, R"md()md"sv, schema->LookupType(R"gql(String)gql"sv), R"gql()gql"sv),
334+
schema::InputValue::Make(R"gql(endsWith)gql"sv, R"md()md"sv, schema->LookupType(R"gql(String)gql"sv), R"gql()gql"sv),
335+
schema::InputValue::Make(R"gql(notEndsWith)gql"sv, R"md()md"sv, schema->LookupType(R"gql(String)gql"sv), R"gql()gql"sv)
336+
});
289337
typeSecondNestedInput->AddInputValues({
290338
schema::InputValue::Make(R"gql(id)gql"sv, R"md()md"sv, schema->WrapType(introspection::TypeKind::NON_NULL, schema->LookupType(R"gql(ID)gql"sv)), R"gql()gql"sv),
291339
schema::InputValue::Make(R"gql(third)gql"sv, R"md()md"sv, schema->WrapType(introspection::TypeKind::NON_NULL, schema->LookupType(R"gql(ThirdNestedInput)gql"sv)), R"gql()gql"sv)

samples/today/schema/TodaySchema.h

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,22 @@ struct IncludeNonNullableListSelfInput
7070
std::vector<IncludeNonNullableListSelfInput> selves {};
7171
};
7272

73+
struct StringOperationFilterInput
74+
{
75+
std::optional<std::vector<StringOperationFilterInput>> and_ {};
76+
std::optional<std::vector<StringOperationFilterInput>> or_ {};
77+
std::optional<std::string> equal {};
78+
std::optional<std::string> notEqual {};
79+
std::optional<std::string> contains {};
80+
std::optional<std::string> notContains {};
81+
std::optional<std::vector<std::string>> in {};
82+
std::optional<std::vector<std::string>> notIn {};
83+
std::optional<std::string> startsWith {};
84+
std::optional<std::string> notStartsWith {};
85+
std::optional<std::string> endsWith {};
86+
std::optional<std::string> notEndsWith {};
87+
};
88+
7389
struct SecondNestedInput
7490
{
7591
response::IdType id {};
@@ -189,6 +205,12 @@ constexpr bool isInputType<today::IncludeNonNullableListSelfInput>() noexcept
189205
return true;
190206
}
191207

208+
template <>
209+
constexpr bool isInputType<today::StringOperationFilterInput>() noexcept
210+
{
211+
return true;
212+
}
213+
192214
template <>
193215
constexpr bool isInputType<today::SecondNestedInput>() noexcept
194216
{

0 commit comments

Comments
 (0)