Sha256: 12beb9d65cf7e33f7a0c908de12755ecdda5557f31b3fe780d0a08b823c1f7a6

Contents?: true

Size: 1.92 KB

Versions: 9

Compression:

Stored size: 1.92 KB

Contents

module Souls
  module Worker
    module Generate
      class << self
        def mailer(class_name: "mailer", option: "")
          if option.to_sym == :sendgrid
            sendgrid_mailer(class_name: class_name)
          else
            mailgun_mailer(class_name: class_name)
          end
        end

        private

        def mailgun_mailer(class_name: "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, "Mailer 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 "Mail を送信します。"
                  field :response, String, null: false

                  def resolve
                    # First, instantiate the Mailgun Client with your API key
                    mg_client = ::Mailgun::Client.new("YOUR-API-KEY")

                    # Define your message parameters
                    message_params = {
                      from: "postmaster@YOUR-DOMAIN",
                      to: "sending@to.mail.com",
                      subject: "SOULs Mailer test!",
                      text: "It is really easy to send a message!"
                    }

                    # Send your message through the client
                    mg_client.send_message("YOUR-MAILGUN-DOMAIN", message_params)
                    { response: "Job done!" }
                  rescue StandardError => e
                    GraphQL::ExecutionError.new(e.to_s)
                  end
              end
            TEXT
          end
          puts(Paint % ["Created file! : %{white_text}", :green, { white_text: [file_path.to_s, :white] }])
          file_path
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
souls-0.45.0 lib/souls/worker/generate/mailer.rb
souls-0.44.6 lib/souls/worker/generate/mailer.rb
souls-0.44.5 lib/souls/worker/generate/mailer.rb
souls-0.44.4 lib/souls/worker/generate/mailer.rb
souls-0.44.3 lib/souls/worker/generate/mailer.rb
souls-0.44.2 lib/souls/worker/generate/mailer.rb
souls-0.44.1 lib/souls/worker/generate/mailer.rb
souls-0.44.0 lib/souls/worker/generate/mailer.rb
souls-0.43.0 lib/souls/worker/generate/mailer.rb