graphql_rails 0.5.2 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (88) hide show
  1. checksums.yaml +4 -4
  2. data/.hound.yml +1 -0
  3. data/.rubocop.yml +3 -3
  4. data/.ruby-version +1 -1
  5. data/.travis.yml +2 -2
  6. data/CHANGELOG.md +35 -0
  7. data/Gemfile +3 -2
  8. data/Gemfile.lock +179 -71
  9. data/docs/README.md +48 -9
  10. data/docs/_sidebar.md +5 -0
  11. data/docs/components/controller.md +294 -8
  12. data/docs/components/decorator.md +69 -0
  13. data/docs/components/model.md +349 -11
  14. data/docs/components/routes.md +43 -1
  15. data/docs/getting_started/quick_start.md +9 -2
  16. data/docs/index.html +1 -1
  17. data/docs/logging_and_monitoring/logging_and_monitoring.md +35 -0
  18. data/docs/other_tools/query_runner.md +49 -0
  19. data/docs/other_tools/schema_dump.md +29 -0
  20. data/docs/testing/testing.md +3 -1
  21. data/graphql_rails.gemspec +5 -4
  22. data/lib/generators/graphql_rails/install_generator.rb +50 -0
  23. data/lib/generators/graphql_rails/templates/example_users_controller.erb +19 -0
  24. data/lib/generators/graphql_rails/templates/graphql_application_controller.erb +8 -0
  25. data/lib/generators/graphql_rails/templates/graphql_controller.erb +20 -0
  26. data/lib/generators/graphql_rails/templates/graphql_router.erb +19 -0
  27. data/lib/generators/graphql_rails/templates/graphql_router_spec.erb +21 -0
  28. data/lib/graphql_rails.rb +7 -1
  29. data/lib/graphql_rails/attributes.rb +13 -0
  30. data/lib/graphql_rails/{attribute → attributes}/attributable.rb +25 -20
  31. data/lib/graphql_rails/attributes/attribute.rb +94 -0
  32. data/lib/graphql_rails/{attribute → attributes}/attribute_name_parser.rb +2 -2
  33. data/lib/graphql_rails/attributes/input_attribute.rb +65 -0
  34. data/lib/graphql_rails/attributes/input_type_parser.rb +62 -0
  35. data/lib/graphql_rails/attributes/type_name_info.rb +38 -0
  36. data/lib/graphql_rails/attributes/type_parseable.rb +128 -0
  37. data/lib/graphql_rails/attributes/type_parser.rb +121 -0
  38. data/lib/graphql_rails/concerns/service.rb +19 -0
  39. data/lib/graphql_rails/controller.rb +44 -22
  40. data/lib/graphql_rails/controller/action.rb +12 -67
  41. data/lib/graphql_rails/controller/action_configuration.rb +71 -31
  42. data/lib/graphql_rails/controller/build_controller_action_resolver.rb +52 -0
  43. data/lib/graphql_rails/controller/build_controller_action_resolver/controller_action_resolver.rb +28 -0
  44. data/lib/graphql_rails/controller/configuration.rb +58 -4
  45. data/lib/graphql_rails/controller/log_controller_action.rb +66 -0
  46. data/lib/graphql_rails/controller/request.rb +29 -8
  47. data/lib/graphql_rails/controller/request/format_errors.rb +58 -0
  48. data/lib/graphql_rails/decorator.rb +41 -0
  49. data/lib/graphql_rails/decorator/relation_decorator.rb +79 -0
  50. data/lib/graphql_rails/errors/custom_execution_error.rb +22 -0
  51. data/lib/graphql_rails/errors/execution_error.rb +8 -7
  52. data/lib/graphql_rails/errors/system_error.rb +14 -0
  53. data/lib/graphql_rails/errors/validation_error.rb +1 -5
  54. data/lib/graphql_rails/input_configurable.rb +47 -0
  55. data/lib/graphql_rails/integrations.rb +19 -0
  56. data/lib/graphql_rails/integrations/lograge.rb +39 -0
  57. data/lib/graphql_rails/integrations/sentry.rb +34 -0
  58. data/lib/graphql_rails/model.rb +26 -4
  59. data/lib/graphql_rails/model/add_fields_to_graphql_type.rb +45 -0
  60. data/lib/graphql_rails/model/build_connection_type.rb +48 -0
  61. data/lib/graphql_rails/model/{configuration → build_connection_type}/count_items.rb +4 -4
  62. data/lib/graphql_rails/model/build_enum_type.rb +68 -0
  63. data/lib/graphql_rails/model/{graphql_input_type_builder.rb → build_graphql_input_type.rb} +10 -2
  64. data/lib/graphql_rails/model/call_graphql_model_method.rb +72 -0
  65. data/lib/graphql_rails/model/configurable.rb +6 -2
  66. data/lib/graphql_rails/model/configuration.rb +34 -19
  67. data/lib/graphql_rails/model/find_or_build_graphql_type.rb +64 -0
  68. data/lib/graphql_rails/model/find_or_build_graphql_type_class.rb +46 -0
  69. data/lib/graphql_rails/model/input.rb +25 -11
  70. data/lib/graphql_rails/query_runner.rb +68 -0
  71. data/lib/graphql_rails/railtie.rb +10 -0
  72. data/lib/graphql_rails/router.rb +40 -13
  73. data/lib/graphql_rails/router/plain_cursor_encoder.rb +16 -0
  74. data/lib/graphql_rails/router/resource_routes_builder.rb +19 -11
  75. data/lib/graphql_rails/router/route.rb +21 -6
  76. data/lib/graphql_rails/router/schema_builder.rb +29 -11
  77. data/lib/graphql_rails/rspec_controller_helpers.rb +25 -12
  78. data/lib/graphql_rails/tasks/dump_graphql_schema.rb +57 -0
  79. data/lib/graphql_rails/tasks/schema.rake +14 -0
  80. data/lib/graphql_rails/version.rb +1 -1
  81. metadata +75 -22
  82. data/README.md +0 -194
  83. data/lib/graphql_rails/attribute.rb +0 -28
  84. data/lib/graphql_rails/attribute/type_parser.rb +0 -115
  85. data/lib/graphql_rails/controller/controller_function.rb +0 -50
  86. data/lib/graphql_rails/controller/format_results.rb +0 -36
  87. data/lib/graphql_rails/model/graphql_type_builder.rb +0 -33
  88. data/lib/graphql_rails/model/input_attribute.rb +0 -47
@@ -1,47 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module GraphqlRails
4
- module Model
5
- # contains info about single graphql input attribute
6
- class InputAttribute
7
- include GraphqlRails::Attribute::Attributable
8
-
9
- attr_reader :description
10
-
11
- def initialize(name, type = nil, description: nil, options: {})
12
- @initial_name = name
13
- @initial_type = type
14
- @description = description
15
- @options = options
16
- end
17
-
18
- def function_argument_args
19
- [field_name, graphql_input_type, { description: description }]
20
- end
21
-
22
- def input_argument_args
23
- type = raw_input_type || model_input_type || nullable_type
24
- [field_name, type, { required: required?, description: description }]
25
- end
26
-
27
- def graphql_input_type
28
- raw_input_type || model_input_type || graphql_field_type
29
- end
30
-
31
- private
32
-
33
- attr_reader :initial_name, :initial_type, :options
34
-
35
- def raw_input_type
36
- return initial_type if initial_type.is_a?(GraphQL::InputObjectType)
37
- return initial_type.graphql_input_type if initial_type.is_a?(Model::Input)
38
- end
39
-
40
- def model_input_type
41
- return unless graphql_model
42
-
43
- graphql_model.graphql.input.graphql_input_type
44
- end
45
- end
46
- end
47
- end