Sha256: ee9ec98e8145553f5b4716cb27cb5ee4076cfef88a914f395efafd229b2ea5e5
Contents?: true
Size: 1.65 KB
Versions: 2
Compression:
Stored size: 1.65 KB
Contents
require 'open-uri' require 'open_uri_redirections' require 'net/http' require 'uri' require 'base64' require "bridge_api" module BridgeBlueprint class RemoteData USERS_CSV_NAME = 'users.csv' CUSTOM_FIELD_CSV_NAME = 'custom_fields.csv' GRANTS_CSV_NAME = 'grants.csv' @base_url = nil @auth_header = nil @file_url = nil @file_path = nil @is_complete = false @client = nil def initialize(base_url, key, secret) @base_url = base_url @auth_header = 'Basic ' + Base64.strict_encode64("#{key}:#{secret}") @client = BridgeAPI::Client.new(prefix: base_url, api_key: key, api_secret: secret) end def start_data_report @client.create_data_dump end def status dumps = get_dumps if dumps.members.size > 0 return get_dumps.first['status'] else return BridgeBlueprint::Constants::STATUS_NOT_FOUND end end def store_file(path) @file_path = path uri = URI.parse(@base_url) http = Net::HTTP.new(uri.host, uri.port) http.read_timeout = 300 http.use_ssl = (uri.scheme == "https") req = Net::HTTP::Get.new("#{@base_url}/api/admin/data_dumps/download") req.add_field("Authorization", @auth_header) res = http.request(req) redirect_url = res['location'] File.open(@file_path, 'w') do |file| IO.copy_stream(open(redirect_url), @file_path) end end private def get_dumps @client.get_data_dumps end def get_headers { 'Authorization'=> @auth_header, 'Content-Type'=> 'application/json', 'Accept'=> 'application/json' } end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
bridge_blueprint-0.0.05 | lib/bridge_blueprint/remote_data.rb |
bridge_blueprint-0.0.04 | lib/bridge_blueprint/remote_data.rb |