module PgDrive::Uploader

Constants

AUTH_SCOPE
Drive
RETRY_COUNT

Public Class Methods

authorizer() click to toggle source
# File lib/pg_drive/uploader.rb, line 20
def authorizer
  Google::Auth::UserAuthorizer.new(
    Uploader.client_id,
    Uploader::AUTH_SCOPE,
    nil
  )
end
call(pipe) click to toggle source
# File lib/pg_drive/uploader.rb, line 8
def call(pipe)
  drive = Drive::DriveService.new
  drive.authorization = credentials
  app_name = Rails.application.class.parent_name
  drive.insert_file(
    Drive::File.new(title: "#{app_name}-#{Time.now.utc.iso8601}.dmp"),
    upload_source: pipe,
    content_type: BINARY_MIME_TYPE,
    options: { retries: RETRY_COUNT }
  )
end
client_id() click to toggle source
# File lib/pg_drive/uploader.rb, line 28
def client_id
  Google::Auth::ClientId.new(google_key, google_secret)
end
credentials() click to toggle source
# File lib/pg_drive/uploader.rb, line 40
def credentials
  refresh_token = ENV["PG_DRIVE_CREDENTIALS"]
  if refresh_token.nil? || refresh_token.empty?
    raise InvalidEnvironment, MISSING_CRED_WARNING
  end
  Google::Auth::UserRefreshCredentials.new(
    client_id: google_key,
    client_secret: google_secret,
    refresh_token: refresh_token,
    scope: AUTH_SCOPE
  )
end
google_key() click to toggle source
# File lib/pg_drive/uploader.rb, line 32
def google_key
  ENV.fetch("PG_DRIVE_GOOGLE_KEY")
end
google_secret() click to toggle source
# File lib/pg_drive/uploader.rb, line 36
def google_secret
  ENV.fetch("PG_DRIVE_GOOGLE_SECRET")
end