summaryrefslogtreecommitdiff
path: root/app/graphql/mutations/snippets/service_compatibility.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/graphql/mutations/snippets/service_compatibility.rb')
-rw-r--r--app/graphql/mutations/snippets/service_compatibility.rb23
1 files changed, 23 insertions, 0 deletions
diff --git a/app/graphql/mutations/snippets/service_compatibility.rb b/app/graphql/mutations/snippets/service_compatibility.rb
new file mode 100644
index 00000000000..0e7ee5d78bf
--- /dev/null
+++ b/app/graphql/mutations/snippets/service_compatibility.rb
@@ -0,0 +1,23 @@
+# frozen_string_literal: true
+
+module Mutations
+ module Snippets
+ # Translates graphql mutation field params to be compatible with those expected by the service layer
+ module ServiceCompatibility
+ extend ActiveSupport::Concern
+
+ # convert_blob_actions_to_snippet_actions!(args) -> nil
+ #
+ # Converts the blob_actions mutation argument into the
+ # snippet_actions hash which the service layer expects
+ def convert_blob_actions_to_snippet_actions!(args)
+ # We need to rename `blob_actions` into `snippet_actions` because
+ # it's the expected key param
+ args[:snippet_actions] = args.delete(:blob_actions)&.map(&:to_h)
+
+ # Return nil to make it explicit that this method is mutating the args parameter
+ nil
+ end
+ end
+ end
+end