From e6d3dd0c2e12a2ed6fa2de5b1442bff859bbeb9c Mon Sep 17 00:00:00 2001 From: jordan-dr Date: Wed, 18 Jun 2025 09:31:05 -0500 Subject: [PATCH] On main: create_project --- .../mutations/projects/create_project.rb | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 app/graphql/mutations/projects/create_project.rb diff --git a/app/graphql/mutations/projects/create_project.rb b/app/graphql/mutations/projects/create_project.rb new file mode 100644 index 0000000..fa0935c --- /dev/null +++ b/app/graphql/mutations/projects/create_project.rb @@ -0,0 +1,31 @@ +module Mutations + module Projects + class CreateProject < BaseMutation + graphql_name 'CreateProject' + + argument :name, String, required: true + argument :description, String, required: false + + field :project, Types::ProjectType, null: false + field :errors, [String], null: false + + # new + + def resolve(name:, description: nil, user_id) + project = Project.new(name: name, description: description, user_id: user_id) + + if project.save + { + project: project, + errors: [] + } + else + { + project: nil, + errors: project.errors.full_messages + } + end + end + end + end + end \ No newline at end of file