class FlashFlow::Release::GoogleDrive
Constants
- DRIVE
Attributes
client[R]
Public Class Methods
new()
click to toggle source
# File lib/flash_flow/google_drive.rb, line 12 def initialize scopes = [DRIVE::AUTH_DRIVE] @client = DRIVE::DriveService.new @client.authorization = Google::Auth.get_application_default(scopes) end
Public Instance Methods
find_files(query)
click to toggle source
# File lib/flash_flow/google_drive.rb, line 24 def find_files(query) response = @client.list_files(q: query) response.files end
set_file_permissions(file_id, config={})
click to toggle source
# File lib/flash_flow/google_drive.rb, line 29 def set_file_permissions(file_id, config={}) @client.batch do %w(group user).each do |type| %w(reader writer).each do |role| # owner is currently not supported config.dig('permissions', type, role).to_s.split(',').each do |email| permission = DRIVE::Permission.new(role: role, type: type, email_address: email) @client.create_permission(file_id, permission, email_message: config[:email_body], send_notification_email: config['notify']) end end end end end
upload_file(local_file, config={})
click to toggle source
# File lib/flash_flow/google_drive.rb, line 18 def upload_file(local_file, config={}) metadata = DRIVE::File.new(name: File.basename(local_file), extension: 'pdf') metadata = @client.create_file(metadata, upload_source: local_file, content_type: 'application/pdf') set_file_permissions(metadata.id, config) end