examples/api-samples/samples/sample22.rb in groupdocs-2.2.0 vs examples/api-samples/samples/sample22.rb in groupdocs-2.3.0

- old
+ new

@@ -1,109 +1,109 @@ -#GET request -get '/sample-22-how-to-create-or-update-user-and-add-him-to-collaborators' do - haml :sample22 -end - -#POST request -post '/sample-22-how-to-create-or-update-user-and-add-him-to-collaborators' do - #Set variables - set :client_id, params[:clientId] - set :private_key, params[:privateKey] - set :fileId, params[:fileId] - set :email, params[:email] - set :first_name, params[:firstName] - set :last_name, params[:lastName] - set :base_path, params[:basePath] - set :url, params[:url] - set :source, params[:source] - - - begin - - #Check required variables - raise 'Please enter all required parameters' if settings.client_id.empty? or settings.private_key.empty? or settings.email.empty? or settings.first_name.empty? or settings.last_name.empty? - - #Prepare base path - if settings.base_path.empty? - base_path = 'https://api.groupdocs.com' - elsif settings.base_path.match('/v2.0') - base_path = settings.base_path.split('/v2.0')[0] - else - base_path = settings.base_path - end - - #Configure your access to API server - GroupDocs.configure do |groupdocs| - groupdocs.client_id = settings.client_id - groupdocs.private_key = settings.private_key - #Optionally specify API server and version - groupdocs.api_server = base_path # default is 'https://api.groupdocs.com' - end - file = nil - - #Get document by file GUID - case settings.source - when 'guid' - #Create instance of File - file = GroupDocs::Storage::File.new({:guid => settings.fileId}) - when 'local' - filepath = "#{Dir.tmpdir}/#{params[:file][:filename]}" - #Open file - File.open(filepath, 'wb') { |f| f.write(params[:file][:tempfile].read) } - #Make a request to API using client_id and private_key - file = GroupDocs::Storage::File.upload!(filepath, {}) - when 'url' - #Upload file from defined url - file = GroupDocs::Storage::File.upload_web!(settings.url) - else - raise 'Wrong GUID source.' - end - - - file = file.to_document - #Create new user - user = GroupDocs::User.new - - user.primary_email = settings.email - user.nickname = settings.email - user.first_name = settings.first_name - user.last_name = settings.last_name - - user.roles = [{:id => '3', :name => 'User'}] - #Update account - new_user = GroupDocs::User.update_account!(user) - - - - #Set new collaboration - file.set_collaborators!([settings.email], 2) - - #Get all collaborations - collaborations = file.collaborators!() - - #Set document reviewers - file.set_reviewers!(collaborations) - - #Prepare to sign url - iframe = "/document-annotation2/embed/#{file.file.guid}?uid = #{new_user.guid}&download=true" - # Construct result string - url = GroupDocs::Api::Request.new(:path => iframe).prepare_and_sign_url - #Generate iframe URL - case base_path - when 'https://stage-api-groupdocs.dynabic.com' - iframe = "https://stage-api-groupdocs.dynabic.com#{url}" - when 'https://dev-api-groupdocs.dynabic.com' - iframe = "https://dev-apps.groupdocs.com#{url}" - else - iframe = "https://apps.groupdocs.com#{url}" - end - - #Make iframe - iframe = "<iframe id='downloadframe' src='#{iframe}' width='800' height='1000'></iframe>" - - rescue Exception => e - err = e.message - end - - #Set variables for template - haml :sample22, :locals => {:userId => settings.client_id, :privateKey => settings.private_key, :fileId => settings.fileId, :email => settings.email, :firstName => settings.first_name, :lastName => settings.last_name, :iframe => iframe, :err => err} -end +#GET request +get '/sample-22-how-to-create-or-update-user-and-add-him-to-collaborators' do + haml :sample22 +end + +#POST request +post '/sample-22-how-to-create-or-update-user-and-add-him-to-collaborators' do + #Set variables + set :client_id, params[:clientId] + set :private_key, params[:privateKey] + set :fileId, params[:fileId] + set :email, params[:email] + set :first_name, params[:firstName] + set :last_name, params[:lastName] + set :base_path, params[:basePath] + set :url, params[:url] + set :source, params[:source] + + + begin + + #Check required variables + raise 'Please enter all required parameters' if settings.client_id.empty? or settings.private_key.empty? or settings.email.empty? or settings.first_name.empty? or settings.last_name.empty? + + #Prepare base path + if settings.base_path.empty? + base_path = 'https://api.groupdocs.com' + elsif settings.base_path.match('/v2.0') + base_path = settings.base_path.split('/v2.0')[0] + else + base_path = settings.base_path + end + + #Configure your access to API server + GroupDocs.configure do |groupdocs| + groupdocs.client_id = settings.client_id + groupdocs.private_key = settings.private_key + #Optionally specify API server and version + groupdocs.api_server = base_path # default is 'https://api.groupdocs.com' + end + file = nil + + #Get document by file GUID + case settings.source + when 'guid' + #Create instance of File + file = GroupDocs::Storage::File.new({:guid => settings.fileId}) + when 'local' + filepath = "#{Dir.tmpdir}/#{params[:file][:filename]}" + #Open file + File.open(filepath, 'wb') { |f| f.write(params[:file][:tempfile].read) } + #Make a request to API using client_id and private_key + file = GroupDocs::Storage::File.upload!(filepath, {}) + when 'url' + #Upload file from defined url + file = GroupDocs::Storage::File.upload_web!(settings.url) + else + raise 'Wrong GUID source.' + end + + + file = file.to_document + #Create new user + user = GroupDocs::User.new + + user.primary_email = settings.email + user.nickname = settings.email + user.first_name = settings.first_name + user.last_name = settings.last_name + + user.roles = [{:id => '3', :name => 'User'}] + #Update account + new_user = GroupDocs::User.update_account!(user) + + + + #Set new collaboration + file.set_collaborators!([settings.email], 2) + + #Get all collaborations + collaborations = file.collaborators!() + + #Set document reviewers + file.set_reviewers!(collaborations) + + #Prepare to sign url + iframe = "/document-annotation2/embed/#{file.file.guid}?uid = #{new_user.guid}&download=true" + # Construct result string + url = GroupDocs::Api::Request.new(:path => iframe).prepare_and_sign_url + #Generate iframe URL + case base_path + when 'https://stage-api-groupdocs.dynabic.com' + iframe = "https://stage-api-groupdocs.dynabic.com#{url}" + when 'https://dev-api-groupdocs.dynabic.com' + iframe = "https://dev-apps.groupdocs.com#{url}" + else + iframe = "https://apps.groupdocs.com#{url}" + end + + #Make iframe + iframe = "<iframe id='downloadframe' src='#{iframe}' width='800' height='1000'></iframe>" + + rescue Exception => e + err = e.message + end + + #Set variables for template + haml :sample22, :locals => {:userId => settings.client_id, :privateKey => settings.private_key, :fileId => settings.fileId, :email => settings.email, :firstName => settings.first_name, :lastName => settings.last_name, :iframe => iframe, :err => err} +end