Sha256: bb0fdf7615f02cf25c39619524e1705dd6f95be37d2eb060e3608e1de5a13a6d

Contents?: true

Size: 1.17 KB

Versions: 33

Compression:

Stored size: 1.17 KB

Contents

module Souls
  class Generate < Thor
    desc "job [CLASS_NAME]", "Generate Job File in Worker"
    def job(class_name)
      create_mutation(class_name: class_name)
    rescue Thor::Error => e
      raise(Thor::Error, e)
    end

    private

    def create_mutation(class_name: "send-mailer")
      file_dir = "./app/graphql/mutations/"
      FileUtils.mkdir_p(file_dir) unless Dir.exist?(file_dir)
      file_path = "#{file_dir}#{class_name.singularize}.rb"
      raise(StandardError, "Mutation already exist! #{file_path}") if File.exist?(file_path)

      File.open(file_path, "w") do |f|
        f.write(<<~TEXT)
          module Mutations
            class #{class_name.camelize} < BaseMutation
              description "Job Description"
              field :response, String, null: false

              def resolve
                # Define Job Here

                { response: "Job done!" }
              rescue StandardError => e
                GraphQL::ExecutionError.new(e.to_s)
              end
            end
          end
        TEXT
      end
      puts(Paint % ["Created file! : %{white_text}", :green, { white_text: [file_path.to_s, :white] }])
      file_path
    end
  end
end

Version data entries

33 entries across 33 versions & 1 rubygems

Version Path
souls-0.59.1 lib/souls/worker/generate/job.rb
souls-0.59.0 lib/souls/worker/generate/job.rb
souls-0.58.3 lib/souls/worker/generate/job.rb
souls-0.58.2 lib/souls/worker/generate/job.rb
souls-0.58.1 lib/souls/worker/generate/job.rb
souls-0.58.0 lib/souls/worker/generate/job.rb
souls-0.57.1 lib/souls/worker/generate/job.rb
souls-0.57.0 lib/souls/worker/generate/job.rb
souls-0.56.4 lib/souls/worker/generate/job.rb
souls-0.56.3 lib/souls/worker/generate/job.rb
souls-0.56.2 lib/souls/worker/generate/job.rb
souls-0.56.1 lib/souls/worker/generate/job.rb
souls-0.56.0 lib/souls/worker/generate/job.rb
souls-0.55.5 lib/souls/worker/generate/job.rb
souls-0.55.4 lib/souls/worker/generate/job.rb
souls-0.55.3 lib/souls/worker/generate/job.rb
souls-0.55.2 lib/souls/worker/generate/job.rb
souls-0.55.1 lib/souls/worker/generate/job.rb
souls-0.55.0 lib/souls/worker/generate/job.rb
souls-0.54.6 lib/souls/worker/generate/job.rb