Skip to content

Commit e65bafc

Browse files
author
KV
authored
Merge pull request #52 from Shopify/add-schema-version
Add Storefront API version to the schema file.
2 parents a58d32e + ba51989 commit e65bafc

10 files changed

Lines changed: 31 additions & 8 deletions

File tree

.travis.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
sudo: false
22
language: ruby
3-
before_install: gem install bundler -v 1.14.3
3+
before_install: gem install bundler -v 2.1.2
44
rvm:
55
- 2.3.3
66
jdk:
7-
- oraclejdk8
7+
- oraclejdk9
88

99
# https://docs.travis-ci.com/user/languages/java/#Caching
1010
# recommends adding this for the gradle cache

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ schema = GraphQLSchema.new(JSON.parse(introspection_result))
4444
GraphQLJavaGen.new(schema,
4545
package_name: "com.example.MyApp",
4646
nest_under: 'ExampleSchema',
47+
version: '2020-01',
4748
custom_scalars: [
4849
GraphQLJavaGen::Scalar.new(
4950
type_name: 'Decimal',
@@ -76,6 +77,7 @@ schema = GraphQLSchema.new(JSON.parse(introspection_result))
7677
GraphQLJavaGen.new(schema,
7778
package_name: "com.example.MyApp",
7879
nest_under: 'ExampleSchema',
80+
version: '2020-01',
7981
custom_scalars: [
8082
GraphQLJavaGen::Scalar.new(
8183
type_name: 'Decimal',

Rakefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ task :generate do
1818
GraphQLSchema.new(Support::Schema.introspection_result),
1919
package_name: 'com.shopify.graphql.support',
2020
nest_under: 'Generated',
21+
version: '2020-01',
2122
custom_scalars: [
2223
GraphQLJavaGen::Scalar.new(
2324
type_name: 'Time',
@@ -38,6 +39,7 @@ task :generate do
3839
GraphQLSchema.new(Support::Schema.introspection_result(Support::Schema::MinimalSchema)),
3940
package_name: 'com.shopify.graphql.support',
4041
nest_under: 'GeneratedMinimal',
42+
version: '2020-01'
4143
).save('support/src/test/java/com/shopify/graphql/support/GeneratedMinimal.java')
4244
end
4345

codegen/lib/graphql_java_gen.rb

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@
77
require 'set'
88

99
class GraphQLJavaGen
10-
attr_reader :schema, :package_name, :scalars, :imports, :script_name, :schema_name, :include_deprecated
10+
attr_reader :schema, :package_name, :scalars, :imports, :script_name, :schema_name, :include_deprecated, :version
1111

1212
def initialize(schema,
1313
package_name:, nest_under:, script_name: 'graphql_java_gen gem',
14-
custom_scalars: [], custom_annotations: [], include_deprecated: false
14+
custom_scalars: [], custom_annotations: [], include_deprecated: false, version: ''
1515
)
1616
@schema = schema
1717
@schema_name = nest_under
@@ -22,13 +22,15 @@ def initialize(schema,
2222
@annotations = custom_annotations
2323
@imports = (@scalars.values.map(&:imports) + @annotations.map(&:imports)).flatten.sort.uniq
2424
@include_deprecated = include_deprecated
25+
@version = version
2526
end
2627

2728
def save(path)
2829
File.write(path, generate)
2930
end
3031

3132
def save_granular(path)
33+
write_schema(path)
3234
write_static_methods(path)
3335
write_response(path, :query, schema.query_root_name)
3436
write_response(path, :mutation, schema.mutation_root_name)
@@ -66,6 +68,10 @@ def generate_entity(template, type)
6668
reformat(erb_template.result(binding))
6769
end
6870

71+
def write_schema(path)
72+
File.write(path + "/Schema.java", reformat(erb_for_entity("Schema.java").result(binding)))
73+
end
74+
6975
def write_static_methods(path)
7076
File.write(path + "/Operations.java", reformat(erb_for_entity("Operations.java").result(binding)))
7177
end

codegen/lib/graphql_java_gen/templates/APISchema.java.erb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ import java.util.List;
2323
import java.util.Map;
2424

2525
public class <%= schema_name %> {
26+
public static final String API_VERSION = "<%= version %>";
27+
2628
<% [[:query, schema.query_root_name], [:mutation, schema.mutation_root_name]].each do |operation_type, root_name| %>
2729
<% next unless root_name %>
2830
public static <%= root_name %>Query <%= operation_type %>(<%= root_name %>QueryDefinition queryDef) {
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
// Generated from <%= script_name %>
2+
3+
package <%= package_name %>;
4+
5+
public class Schema {
6+
public static String VERSION = "<%= version %>";
7+
}

codegen/test/graphql_java_gen_test.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,17 @@ def test_that_it_has_a_version_number
66
end
77

88
def test_default_script_name
9-
output = GraphQLJavaGen.new(MINIMAL_SCHEMA, **required_args).generate
9+
output = GraphQLJavaGen.new(MINIMAL_SCHEMA, version: '2020-01', **required_args).generate
1010
assert_match %r{\A// Generated from graphql_java_gen gem$}, output
1111
end
1212

1313
def test_script_name_option
14-
output = GraphQLJavaGen.new(MINIMAL_SCHEMA, script_name: 'script/update_schema', **required_args).generate
14+
output = GraphQLJavaGen.new(MINIMAL_SCHEMA, script_name: 'script/update_schema', version: '2020-01', **required_args).generate
1515
assert_match %r{\A// Generated from script/update_schema$}, output
1616
end
1717

1818
def test_generate
19-
refute_empty GraphQLJavaGen.new(LARGER_SCHEMA, **required_args).generate
19+
refute_empty GraphQLJavaGen.new(LARGER_SCHEMA, version: '2020-01', **required_args).generate
2020
end
2121

2222
private

graphql_java_gen.gemspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ Gem::Specification.new do |spec|
2121

2222
spec.add_dependency "graphql_schema", "~> 0.1.1"
2323

24-
spec.add_development_dependency "bundler", "~> 1.14"
24+
spec.add_development_dependency "bundler", "~> 2.1"
2525
spec.add_development_dependency "rake", "~> 12.0"
2626
spec.add_development_dependency "minitest", "~> 5.10"
2727
spec.add_development_dependency "graphql", "~> 1.3"

support/src/test/java/com/shopify/graphql/support/Generated.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626
import java.util.Map;
2727

2828
public class Generated {
29+
public static final String API_VERSION = "2020-01";
30+
2931
public static QueryRootQuery query(QueryRootQueryDefinition queryDef) {
3032
StringBuilder queryString = new StringBuilder("{");
3133
QueryRootQuery query = new QueryRootQuery(queryString);

support/src/test/java/com/shopify/graphql/support/GeneratedMinimal.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
import java.util.Map;
2323

2424
public class GeneratedMinimal {
25+
public static final String API_VERSION = "2020-01";
26+
2527
public static QueryRootQuery query(QueryRootQueryDefinition queryDef) {
2628
StringBuilder queryString = new StringBuilder("{");
2729
QueryRootQuery query = new QueryRootQuery(queryString);

0 commit comments

Comments
 (0)