Sha256: 15721a5947228cb9fc279c706c5cce9d5fed149b6af5f464563b4af11c72f7ad

Contents?: true

Size: 1.23 KB

Versions: 21

Compression:

Stored size: 1.23 KB

Contents

# frozen_string_literal: true

module NeetoCommonsBackend
  module Services
    class CustomDomain
      attr_reader :domain_name, :default_url

      def initialize(domain_name)
        @domain_name = domain_name
        @default_url = "https://api.heroku.com/apps/#{Rails.application.secrets.heroku[:app_name]}/domains"
      end

      def create
        params = { hostname: domain_name, sni_endpoint: Rails.application.secrets.heroku[:certificate_name] }
        uri = URI(default_url)
        req = Net::HTTP::Post.new(uri)
        make_api_request(req, params, uri)
      end

      def delete
        uri = URI("#{default_url}/#{domain_name}")
        req = Net::HTTP::Delete.new(uri)
        make_api_request(req, nil, uri)
      end

      private

        def make_api_request(req, params, uri)
          response = Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
            req.body = JSON[params] if params
            req["Content-Type"] = "application/json"
            req["Accept"] = "application/vnd.heroku+json; version=3"
            req["Authorization"] = "Bearer #{Rails.application.secrets.heroku[:auth_token]}"
            http.request(req)
          end
          JSON.parse(response.body)
        end
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
neeto-commons-backend-1.0.109 lib/neeto_commons_backend/services/custom_domain_service.rb
neeto-commons-backend-1.0.108 lib/neeto_commons_backend/services/custom_domain_service.rb
neeto-commons-backend-1.0.107 lib/neeto_commons_backend/services/custom_domain_service.rb
neeto-commons-backend-1.0.106 lib/neeto_commons_backend/services/custom_domain_service.rb
neeto-commons-backend-1.0.105 lib/neeto_commons_backend/services/custom_domain_service.rb
neeto-commons-backend-1.0.104 lib/neeto_commons_backend/services/custom_domain_service.rb
neeto-commons-backend-1.0.103 lib/neeto_commons_backend/services/custom_domain_service.rb
neeto-commons-backend-1.0.102 lib/neeto_commons_backend/services/custom_domain_service.rb
neeto-commons-backend-1.0.101 lib/neeto_commons_backend/services/custom_domain_service.rb
neeto-commons-backend-1.0.100 lib/neeto_commons_backend/services/custom_domain_service.rb
neeto-commons-backend-1.0.99 lib/neeto_commons_backend/services/custom_domain_service.rb
neeto-commons-backend-1.0.98 lib/neeto_commons_backend/services/custom_domain_service.rb
neeto-commons-backend-1.0.97 lib/neeto_commons_backend/services/custom_domain_service.rb
neeto-commons-backend-1.0.96 lib/neeto_commons_backend/services/custom_domain_service.rb
neeto-commons-backend-1.0.95 lib/neeto_commons_backend/services/custom_domain_service.rb
neeto-commons-backend-1.0.94 lib/neeto_commons_backend/services/custom_domain_service.rb
neeto-commons-backend-1.0.93 lib/neeto_commons_backend/services/custom_domain_service.rb
neeto-commons-backend-1.0.92 lib/neeto_commons_backend/services/custom_domain_service.rb
neeto-commons-backend-1.0.91 lib/neeto_commons_backend/services/custom_domain_service.rb
neeto-commons-backend-1.0.90 lib/neeto_commons_backend/services/custom_domain_service.rb