Sha256: 2f756698d23a4395dc2d70bff9f6a55398c9d1d6b3329f97213eccdd3d3c540a

Contents?: true

Size: 1.09 KB

Versions: 4

Compression:

Stored size: 1.09 KB

Contents

module Mutations
  module Base::Article
    class CreateArticle < BaseMutation
      field :article_edge, Types::ArticleType.edge_type, null: false
      field :error, String, null: true

      argument :article_category_id, String, required: false
      argument :body, String, required: false
      argument :is_deleted, Boolean, required: false
      argument :is_public, Boolean, required: false
      argument :just_created, Boolean, required: false
      argument :public_date, String, required: false
      argument :slag, String, required: false
      argument :tags, [String], required: false
      argument :thumnail_url, String, required: false
      argument :title, String, required: false

      def resolve(**args)
        args[:user_id] = context[:user].id
        _, args[:article_category_id] = SoulsApiSchema.from_global_id(args[:article_category_id])
        data = ::Article.new(args)
        raise(StandardError, data.errors.full_messages) unless data.save

        { article_edge: { node: data } }
      rescue StandardError => e
        GraphQL::ExecutionError.new(e)
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
souls-0.24.2 apps/api/app/graphql/mutations/base/article/create_article.rb
souls-0.24.1 apps/api/app/graphql/mutations/base/article/create_article.rb
souls-0.22.8 hoy/app/graphql/mutations/base/article/create_article.rb
souls-0.22.7 hoy/app/graphql/mutations/base/article/create_article.rb