examples/api-samples/public/docs/envelope-sample.html in groupdocs-2.2.0 vs examples/api-samples/public/docs/envelope-sample.html in groupdocs-2.3.0

- old
+ new

@@ -1,374 +1,374 @@ -<!DOCTYPE html> - -<html> -<head> - <title>envelope-sample.rb</title> - <meta http-equiv="content-type" content="text/html; charset=UTF-8"> - <meta name="viewport" content="width=device-width, target-densitydpi=160dpi, initial-scale=1.0; maximum-scale=1.0; user-scalable=0;"> - <link rel="stylesheet" media="all" href="docco.css" /> -</head> -<body> - <div id="container"> - <div id="background"></div> - - <ul class="sections"> - - <li id="title"> - <div class="annotation"> - <h1>envelope-sample.rb</h1> - </div> - </li> - - - - <li id="section-1"> - <div class="annotation"> - - <div class="pilwrap "> - <a class="pilcrow" href="#section-1">&#182;</a> - </div> - <p>GET request</p> - - </div> - - <div class="content"><div class='highlight'><pre>get <span class="string">'/envelope-sample'</span> <span class="keyword">do</span> - haml <span class="symbol">:envelope_sample</span> -<span class="keyword">end</span></pre></div></div> - - </li> - - - <li id="section-2"> - <div class="annotation"> - - <div class="pilwrap "> - <a class="pilcrow" href="#section-2">&#182;</a> - </div> - <p>POST request to handle callback when document was signed</p> - - </div> - - <div class="content"><div class='highlight'><pre>post <span class="string">'/envelope-sample/sign'</span> <span class="keyword">do</span></pre></div></div> - - </li> - - - <li id="section-3"> - <div class="annotation"> - - <div class="pilwrap "> - <a class="pilcrow" href="#section-3">&#182;</a> - </div> - <p>Content Type of callback is application/json</p> - - </div> - - <div class="content"><div class='highlight'><pre> data = <span class="constant">JSON</span>.parse(request.body.read) - <span class="keyword">begin</span> - raise <span class="string">'Empty params!'</span> <span class="keyword">if</span> data.empty?</pre></div></div> - - </li> - - - <li id="section-4"> - <div class="annotation"> - - <div class="pilwrap "> - <a class="pilcrow" href="#section-4">&#182;</a> - </div> - <p>create empty file and write data as &quot;key: value&quot; to it</p> - - </div> - - <div class="content"><div class='highlight'><pre> out_file = <span class="constant">File</span>.new(<span class="string">'signed'</span>, <span class="string">'w'</span>) - data.each <span class="keyword">do</span> |key, value| - out_file.write(<span class="string">"<span class="subst">#{key}</span>: <span class="subst">#{value}</span> \n"</span>) - <span class="keyword">end</span> - out_file.close - <span class="keyword">rescue</span> <span class="constant">Exception</span> =&gt; e - err = e.message - <span class="keyword">end</span> -<span class="keyword">end</span></pre></div></div> - - </li> - - - <li id="section-5"> - <div class="annotation"> - - <div class="pilwrap "> - <a class="pilcrow" href="#section-5">&#182;</a> - </div> - <p>POST request to handle callback and download envelop when document was signed</p> - - </div> - - <div class="content"><div class='highlight'><pre>post <span class="string">'/envelope-sample/sign-and-download'</span> <span class="keyword">do</span> - data = <span class="constant">JSON</span>.parse(request.body.read) - <span class="keyword">begin</span> - raise <span class="string">'Empty params!'</span> <span class="keyword">if</span> data.empty? - <span class="constant">GroupDocs</span>.configure <span class="keyword">do</span> |groupdocs| - groupdocs.client_id = <span class="string">''</span> <span class="comment"># Your client Client ID here</span> - groupdocs.private_key = <span class="string">''</span> <span class="comment"># Your API Key here</span> - groupdocs.api_server = <span class="string">'https://api.groupdocs.com'</span> - <span class="keyword">end</span> - data.each <span class="keyword">do</span> |key, value| - <span class="keyword">if</span> key == <span class="string">'SourceId'</span></pre></div></div> - - </li> - - - <li id="section-6"> - <div class="annotation"> - - <div class="pilwrap "> - <a class="pilcrow" href="#section-6">&#182;</a> - </div> - <p>Create envelop with id and name as SourceId parameter from callback</p> - - </div> - - <div class="content"><div class='highlight'><pre> envelope = <span class="constant">GroupDocs::Signature::Envelope</span>.new <span class="symbol">id:</span> value, - <span class="symbol">name:</span> value</pre></div></div> - - </li> - - - <li id="section-7"> - <div class="annotation"> - - <div class="pilwrap "> - <a class="pilcrow" href="#section-7">&#182;</a> - </div> - <p>download signed documents as archive</p> - - </div> - - <div class="content"><div class='highlight'><pre> envelope.signed_documents! <span class="string">'.'</span> - <span class="keyword">end</span> - <span class="keyword">end</span> - <span class="keyword">rescue</span> <span class="constant">Exception</span> =&gt; e - err = e.message - <span class="keyword">end</span> -<span class="keyword">end</span></pre></div></div> - - </li> - - - <li id="section-8"> - <div class="annotation"> - - <div class="pilwrap "> - <a class="pilcrow" href="#section-8">&#182;</a> - </div> - <p>GET request to check if envelop was signed</p> - - </div> - - <div class="content"><div class='highlight'><pre>get <span class="string">'/envelope-sample/check'</span> <span class="keyword">do</span> - <span class="keyword">if</span> <span class="constant">File</span>.exist?(<span class="string">'signed'</span>) - <span class="constant">File</span>.readlines(<span class="string">'signed'</span>).each <span class="keyword">do</span> |line| - <span class="keyword">end</span> - <span class="keyword">else</span> - <span class="string">'Have not signed yet'</span> - <span class="keyword">end</span> -<span class="keyword">end</span></pre></div></div> - - </li> - - - <li id="section-9"> - <div class="annotation"> - - <div class="pilwrap "> - <a class="pilcrow" href="#section-9">&#182;</a> - </div> - <p>POST request</p> - - </div> - - <div class="content"><div class='highlight'><pre>post <span class="string">'/envelope-sample'</span> <span class="keyword">do</span> - set <span class="symbol">:client_id</span>, params[<span class="symbol">:client_id</span>] - set <span class="symbol">:private_key</span>, params[<span class="symbol">:private_key</span>] - - <span class="keyword">begin</span> - raise <span class="string">'Please enter all required parameters'</span> <span class="keyword">if</span> settings.client_id.empty? <span class="keyword">or</span> settings.private_key.empty? - - <span class="constant">GroupDocs</span>.configure <span class="keyword">do</span> |groupdocs| - groupdocs.client_id = params[<span class="symbol">:client_id</span>] - groupdocs.private_key = params[<span class="symbol">:private_key</span>] - groupdocs.api_server = <span class="string">'https://stage-api.groupdocs.com'</span> - <span class="keyword">end</span></pre></div></div> - - </li> - - - <li id="section-10"> - <div class="annotation"> - - <div class="pilwrap "> - <a class="pilcrow" href="#section-10">&#182;</a> - </div> - <p>upload document</p> - - </div> - - <div class="content"><div class='highlight'><pre> filepath = <span class="string">"<span class="subst">#{<span class="constant">Dir</span>.tmpdir}</span>/<span class="subst">#{params[<span class="symbol">:file</span>][<span class="symbol">:filename</span>]}</span>"</span> - <span class="constant">File</span>.open(filepath, <span class="string">'wb'</span>) { |f| f.write(params[<span class="symbol">:file</span>][<span class="symbol">:tempfile</span>].read) } - file = <span class="constant">GroupDocs::Storage::File</span>.upload!(filepath, {}, <span class="symbol">client_id:</span> settings.client_id, <span class="symbol">private_key:</span> settings.private_key) - document = file.to_document</pre></div></div> - - </li> - - - <li id="section-11"> - <div class="annotation"> - - <div class="pilwrap "> - <a class="pilcrow" href="#section-11">&#182;</a> - </div> - <p>create envelope</p> - - </div> - - <div class="content"><div class='highlight'><pre> envelope = <span class="constant">GroupDocs::Signature::Envelope</span>.new - envelope.name = <span class="string">'Envelope'</span> - envelope.email_subject = <span class="string">'Sing this!'</span> - envelope.create!</pre></div></div> - - </li> - - - <li id="section-12"> - <div class="annotation"> - - <div class="pilwrap "> - <a class="pilcrow" href="#section-12">&#182;</a> - </div> - <p>add document to envelope</p> - - </div> - - <div class="content"><div class='highlight'><pre> envelope.add_document! document</pre></div></div> - - </li> - - - <li id="section-13"> - <div class="annotation"> - - <div class="pilwrap "> - <a class="pilcrow" href="#section-13">&#182;</a> - </div> - <p>update document object after it&#39;s created</p> - - </div> - - <div class="content"><div class='highlight'><pre> document = envelope.documents!.first</pre></div></div> - - </li> - - - <li id="section-14"> - <div class="annotation"> - - <div class="pilwrap "> - <a class="pilcrow" href="#section-14">&#182;</a> - </div> - <p>add new recipient to envelope</p> - - </div> - - <div class="content"><div class='highlight'><pre> roles = <span class="constant">GroupDocs::Signature::Role</span>.get! - recipient = <span class="constant">GroupDocs::Signature::Recipient</span>.new - recipient.email = <span class="string">'john@smith.com'</span> - recipient.first_name = <span class="string">'John'</span> - recipient.last_name = <span class="string">'Smith'</span> - recipient.role_id = roles.detect { |role| role.name == <span class="string">'Signer'</span> }.id - envelope.add_recipient! recipient</pre></div></div> - - </li> - - - <li id="section-15"> - <div class="annotation"> - - <div class="pilwrap "> - <a class="pilcrow" href="#section-15">&#182;</a> - </div> - <p>update recipient object after it&#39;s created</p> - - </div> - - <div class="content"><div class='highlight'><pre> recipient = envelope.recipients!.first</pre></div></div> - - </li> - - - <li id="section-16"> - <div class="annotation"> - - <div class="pilwrap "> - <a class="pilcrow" href="#section-16">&#182;</a> - </div> - <p>You can add fields manually.</p> -<p>add city field to envelope -field = GroupDocs::Signature::Field.get!.detect { |f| f.type == :single_line } -field.name = &#39;City&#39; -field.location = { location_x: 0.3, location_y: 0.2, page: 1 } -envelope.add_field! field, document, recipient</p> -<p>add signature field to envelope -field = GroupDocs::Signature::Field.get!.detect { |f| f.type == :signature } -field.location = { location_x: 0.3, location_y: 0.3, page: 1 } -envelope.add_field! field, document, recipient</p> -<p>URL for callback -webhook = &#39;<a href="http://groupdocs-ruby-samples.herokuapp.com/envelope-sample/sign">http://groupdocs-ruby-samples.herokuapp.com/envelope-sample/sign</a>&#39;</p> - - </div> - - <div class="content"><div class='highlight'><pre> webhook = <span class="string">'http://77.81.243.48/?q=groupdocs_signature/signature_callback'</span></pre></div></div> - - </li> - - - <li id="section-17"> - <div class="annotation"> - - <div class="pilwrap "> - <a class="pilcrow" href="#section-17">&#182;</a> - </div> - <p>send envelope</p> - - </div> - - <div class="content"><div class='highlight'><pre> envelope.send! webhook</pre></div></div> - - </li> - - - <li id="section-18"> - <div class="annotation"> - - <div class="pilwrap "> - <a class="pilcrow" href="#section-18">&#182;</a> - </div> - <p>construct embedded signature url</p> - - </div> - - <div class="content"><div class='highlight'><pre> url = <span class="string">"https://stage-apps.groupdocs.com/signature/signembed/<span class="subst">#{envelope.id}</span>/<span class="subst">#{recipient.id}</span>"</span> - iframe = <span class="string">"&lt;iframe src='<span class="subst">#{url}</span>' frameborder='0' width='720' height='600'&gt;&lt;/iframe&gt;"</span> - - <span class="keyword">rescue</span> <span class="constant">Exception</span> =&gt; e - err = e.message - <span class="keyword">end</span> - - haml <span class="symbol">:envelope_sample</span>, <span class="symbol">:locals</span> =&gt; {<span class="symbol">:client_id</span> =&gt; settings.client_id, <span class="symbol">:private_key</span> =&gt; settings.private_key, <span class="symbol">:err</span> =&gt; err, <span class="symbol">:iframe</span> =&gt; iframe} -<span class="keyword">end</span></pre></div></div> - - </li> - - </ul> - </div> -</body> -</html> +<!DOCTYPE html> + +<html> +<head> + <title>envelope-sample.rb</title> + <meta http-equiv="content-type" content="text/html; charset=UTF-8"> + <meta name="viewport" content="width=device-width, target-densitydpi=160dpi, initial-scale=1.0; maximum-scale=1.0; user-scalable=0;"> + <link rel="stylesheet" media="all" href="docco.css" /> +</head> +<body> + <div id="container"> + <div id="background"></div> + + <ul class="sections"> + + <li id="title"> + <div class="annotation"> + <h1>envelope-sample.rb</h1> + </div> + </li> + + + + <li id="section-1"> + <div class="annotation"> + + <div class="pilwrap "> + <a class="pilcrow" href="#section-1">&#182;</a> + </div> + <p>GET request</p> + + </div> + + <div class="content"><div class='highlight'><pre>get <span class="string">'/envelope-sample'</span> <span class="keyword">do</span> + haml <span class="symbol">:envelope_sample</span> +<span class="keyword">end</span></pre></div></div> + + </li> + + + <li id="section-2"> + <div class="annotation"> + + <div class="pilwrap "> + <a class="pilcrow" href="#section-2">&#182;</a> + </div> + <p>POST request to handle callback when document was signed</p> + + </div> + + <div class="content"><div class='highlight'><pre>post <span class="string">'/envelope-sample/sign'</span> <span class="keyword">do</span></pre></div></div> + + </li> + + + <li id="section-3"> + <div class="annotation"> + + <div class="pilwrap "> + <a class="pilcrow" href="#section-3">&#182;</a> + </div> + <p>Content Type of callback is application/json</p> + + </div> + + <div class="content"><div class='highlight'><pre> data = <span class="constant">JSON</span>.parse(request.body.read) + <span class="keyword">begin</span> + raise <span class="string">'Empty params!'</span> <span class="keyword">if</span> data.empty?</pre></div></div> + + </li> + + + <li id="section-4"> + <div class="annotation"> + + <div class="pilwrap "> + <a class="pilcrow" href="#section-4">&#182;</a> + </div> + <p>create empty file and write data as &quot;key: value&quot; to it</p> + + </div> + + <div class="content"><div class='highlight'><pre> out_file = <span class="constant">File</span>.new(<span class="string">'signed'</span>, <span class="string">'w'</span>) + data.each <span class="keyword">do</span> |key, value| + out_file.write(<span class="string">"<span class="subst">#{key}</span>: <span class="subst">#{value}</span> \n"</span>) + <span class="keyword">end</span> + out_file.close + <span class="keyword">rescue</span> <span class="constant">Exception</span> =&gt; e + err = e.message + <span class="keyword">end</span> +<span class="keyword">end</span></pre></div></div> + + </li> + + + <li id="section-5"> + <div class="annotation"> + + <div class="pilwrap "> + <a class="pilcrow" href="#section-5">&#182;</a> + </div> + <p>POST request to handle callback and download envelop when document was signed</p> + + </div> + + <div class="content"><div class='highlight'><pre>post <span class="string">'/envelope-sample/sign-and-download'</span> <span class="keyword">do</span> + data = <span class="constant">JSON</span>.parse(request.body.read) + <span class="keyword">begin</span> + raise <span class="string">'Empty params!'</span> <span class="keyword">if</span> data.empty? + <span class="constant">GroupDocs</span>.configure <span class="keyword">do</span> |groupdocs| + groupdocs.client_id = <span class="string">''</span> <span class="comment"># Your client Client ID here</span> + groupdocs.private_key = <span class="string">''</span> <span class="comment"># Your API Key here</span> + groupdocs.api_server = <span class="string">'https://api.groupdocs.com'</span> + <span class="keyword">end</span> + data.each <span class="keyword">do</span> |key, value| + <span class="keyword">if</span> key == <span class="string">'SourceId'</span></pre></div></div> + + </li> + + + <li id="section-6"> + <div class="annotation"> + + <div class="pilwrap "> + <a class="pilcrow" href="#section-6">&#182;</a> + </div> + <p>Create envelop with id and name as SourceId parameter from callback</p> + + </div> + + <div class="content"><div class='highlight'><pre> envelope = <span class="constant">GroupDocs::Signature::Envelope</span>.new <span class="symbol">id:</span> value, + <span class="symbol">name:</span> value</pre></div></div> + + </li> + + + <li id="section-7"> + <div class="annotation"> + + <div class="pilwrap "> + <a class="pilcrow" href="#section-7">&#182;</a> + </div> + <p>download signed documents as archive</p> + + </div> + + <div class="content"><div class='highlight'><pre> envelope.signed_documents! <span class="string">'.'</span> + <span class="keyword">end</span> + <span class="keyword">end</span> + <span class="keyword">rescue</span> <span class="constant">Exception</span> =&gt; e + err = e.message + <span class="keyword">end</span> +<span class="keyword">end</span></pre></div></div> + + </li> + + + <li id="section-8"> + <div class="annotation"> + + <div class="pilwrap "> + <a class="pilcrow" href="#section-8">&#182;</a> + </div> + <p>GET request to check if envelop was signed</p> + + </div> + + <div class="content"><div class='highlight'><pre>get <span class="string">'/envelope-sample/check'</span> <span class="keyword">do</span> + <span class="keyword">if</span> <span class="constant">File</span>.exist?(<span class="string">'signed'</span>) + <span class="constant">File</span>.readlines(<span class="string">'signed'</span>).each <span class="keyword">do</span> |line| + <span class="keyword">end</span> + <span class="keyword">else</span> + <span class="string">'Have not signed yet'</span> + <span class="keyword">end</span> +<span class="keyword">end</span></pre></div></div> + + </li> + + + <li id="section-9"> + <div class="annotation"> + + <div class="pilwrap "> + <a class="pilcrow" href="#section-9">&#182;</a> + </div> + <p>POST request</p> + + </div> + + <div class="content"><div class='highlight'><pre>post <span class="string">'/envelope-sample'</span> <span class="keyword">do</span> + set <span class="symbol">:client_id</span>, params[<span class="symbol">:client_id</span>] + set <span class="symbol">:private_key</span>, params[<span class="symbol">:private_key</span>] + + <span class="keyword">begin</span> + raise <span class="string">'Please enter all required parameters'</span> <span class="keyword">if</span> settings.client_id.empty? <span class="keyword">or</span> settings.private_key.empty? + + <span class="constant">GroupDocs</span>.configure <span class="keyword">do</span> |groupdocs| + groupdocs.client_id = params[<span class="symbol">:client_id</span>] + groupdocs.private_key = params[<span class="symbol">:private_key</span>] + groupdocs.api_server = <span class="string">'https://stage-api.groupdocs.com'</span> + <span class="keyword">end</span></pre></div></div> + + </li> + + + <li id="section-10"> + <div class="annotation"> + + <div class="pilwrap "> + <a class="pilcrow" href="#section-10">&#182;</a> + </div> + <p>upload document</p> + + </div> + + <div class="content"><div class='highlight'><pre> filepath = <span class="string">"<span class="subst">#{<span class="constant">Dir</span>.tmpdir}</span>/<span class="subst">#{params[<span class="symbol">:file</span>][<span class="symbol">:filename</span>]}</span>"</span> + <span class="constant">File</span>.open(filepath, <span class="string">'wb'</span>) { |f| f.write(params[<span class="symbol">:file</span>][<span class="symbol">:tempfile</span>].read) } + file = <span class="constant">GroupDocs::Storage::File</span>.upload!(filepath, {}, <span class="symbol">client_id:</span> settings.client_id, <span class="symbol">private_key:</span> settings.private_key) + document = file.to_document</pre></div></div> + + </li> + + + <li id="section-11"> + <div class="annotation"> + + <div class="pilwrap "> + <a class="pilcrow" href="#section-11">&#182;</a> + </div> + <p>create envelope</p> + + </div> + + <div class="content"><div class='highlight'><pre> envelope = <span class="constant">GroupDocs::Signature::Envelope</span>.new + envelope.name = <span class="string">'Envelope'</span> + envelope.email_subject = <span class="string">'Sing this!'</span> + envelope.create!</pre></div></div> + + </li> + + + <li id="section-12"> + <div class="annotation"> + + <div class="pilwrap "> + <a class="pilcrow" href="#section-12">&#182;</a> + </div> + <p>add document to envelope</p> + + </div> + + <div class="content"><div class='highlight'><pre> envelope.add_document! document</pre></div></div> + + </li> + + + <li id="section-13"> + <div class="annotation"> + + <div class="pilwrap "> + <a class="pilcrow" href="#section-13">&#182;</a> + </div> + <p>update document object after it&#39;s created</p> + + </div> + + <div class="content"><div class='highlight'><pre> document = envelope.documents!.first</pre></div></div> + + </li> + + + <li id="section-14"> + <div class="annotation"> + + <div class="pilwrap "> + <a class="pilcrow" href="#section-14">&#182;</a> + </div> + <p>add new recipient to envelope</p> + + </div> + + <div class="content"><div class='highlight'><pre> roles = <span class="constant">GroupDocs::Signature::Role</span>.get! + recipient = <span class="constant">GroupDocs::Signature::Recipient</span>.new + recipient.email = <span class="string">'john@smith.com'</span> + recipient.first_name = <span class="string">'John'</span> + recipient.last_name = <span class="string">'Smith'</span> + recipient.role_id = roles.detect { |role| role.name == <span class="string">'Signer'</span> }.id + envelope.add_recipient! recipient</pre></div></div> + + </li> + + + <li id="section-15"> + <div class="annotation"> + + <div class="pilwrap "> + <a class="pilcrow" href="#section-15">&#182;</a> + </div> + <p>update recipient object after it&#39;s created</p> + + </div> + + <div class="content"><div class='highlight'><pre> recipient = envelope.recipients!.first</pre></div></div> + + </li> + + + <li id="section-16"> + <div class="annotation"> + + <div class="pilwrap "> + <a class="pilcrow" href="#section-16">&#182;</a> + </div> + <p>You can add fields manually.</p> +<p>add city field to envelope +field = GroupDocs::Signature::Field.get!.detect { |f| f.type == :single_line } +field.name = &#39;City&#39; +field.location = { location_x: 0.3, location_y: 0.2, page: 1 } +envelope.add_field! field, document, recipient</p> +<p>add signature field to envelope +field = GroupDocs::Signature::Field.get!.detect { |f| f.type == :signature } +field.location = { location_x: 0.3, location_y: 0.3, page: 1 } +envelope.add_field! field, document, recipient</p> +<p>URL for callback +webhook = &#39;<a href="http://groupdocs-ruby-samples.herokuapp.com/envelope-sample/sign">http://groupdocs-ruby-samples.herokuapp.com/envelope-sample/sign</a>&#39;</p> + + </div> + + <div class="content"><div class='highlight'><pre> webhook = <span class="string">'http://77.81.243.48/?q=groupdocs_signature/signature_callback'</span></pre></div></div> + + </li> + + + <li id="section-17"> + <div class="annotation"> + + <div class="pilwrap "> + <a class="pilcrow" href="#section-17">&#182;</a> + </div> + <p>send envelope</p> + + </div> + + <div class="content"><div class='highlight'><pre> envelope.send! webhook</pre></div></div> + + </li> + + + <li id="section-18"> + <div class="annotation"> + + <div class="pilwrap "> + <a class="pilcrow" href="#section-18">&#182;</a> + </div> + <p>construct embedded signature url</p> + + </div> + + <div class="content"><div class='highlight'><pre> url = <span class="string">"https://stage-apps.groupdocs.com/signature/signembed/<span class="subst">#{envelope.id}</span>/<span class="subst">#{recipient.id}</span>"</span> + iframe = <span class="string">"&lt;iframe src='<span class="subst">#{url}</span>' frameborder='0' width='720' height='600'&gt;&lt;/iframe&gt;"</span> + + <span class="keyword">rescue</span> <span class="constant">Exception</span> =&gt; e + err = e.message + <span class="keyword">end</span> + + haml <span class="symbol">:envelope_sample</span>, <span class="symbol">:locals</span> =&gt; {<span class="symbol">:client_id</span> =&gt; settings.client_id, <span class="symbol">:private_key</span> =&gt; settings.private_key, <span class="symbol">:err</span> =&gt; err, <span class="symbol">:iframe</span> =&gt; iframe} +<span class="keyword">end</span></pre></div></div> + + </li> + + </ul> + </div> +</body> +</html>