examples/api-samples/public/docs/sample11.html in groupdocs-1.5.7 vs examples/api-samples/public/docs/sample11.html in groupdocs-1.5.8
- old
+ new
@@ -57,18 +57,20 @@
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-3">¶</a>
</div>
- <p>set variables</p>
+ <p>Set variables</p>
</div>
- <div class="content"><div class='highlight'><pre> 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>]
+ <div class="content"><div class='highlight'><pre> set <span class="symbol">:client_id</span>, params[<span class="symbol">:clientId</span>]
+ set <span class="symbol">:private_key</span>, params[<span class="symbol">:privateKey</span>]
set <span class="symbol">:file_id</span>, params[<span class="symbol">:fileId</span>]
- set <span class="symbol">:annotation_type</span>, params[<span class="symbol">:annotation_type</span>]
+ set <span class="symbol">:annotation_type</span>, params[<span class="symbol">:annotationType</span>]
+ set <span class="symbol">:annotation_id</span>, params[<span class="symbol">:annotationId</span>]
+ set <span class="symbol">:base_path</span>, params[<span class="symbol">:basePath</span>]
<span class="keyword">begin</span></pre></div></div>
</li>
@@ -77,108 +79,166 @@
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-4">¶</a>
</div>
- <p>check required variables</p>
+ <p>Check required variables</p>
</div>
- <div class="content"><div class='highlight'><pre> 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="keyword">or</span> settings.file_id.empty? <span class="keyword">or</span> settings.annotation_type.empty?</pre></div></div>
+ <div class="content"><div class='highlight'><pre> 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="keyword">or</span> settings.file_id.empty? <span class="keyword">or</span> settings.annotation_type.empty?
+
+ <span class="keyword">if</span> settings.base_path.empty? <span class="keyword">then</span> settings.base_path = <span class="string">'https://api.groupdocs.com'</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">¶</a>
</div>
- <p>annotation types</p>
+ <p>Configure your access to API server</p>
</div>
- <div class="content"><div class='highlight'><pre> types = {<span class="symbol">:text</span> => <span class="number">0</span>, <span class="symbol">:area</span> => <span class="number">1</span>, <span class="symbol">:point</span> => <span class="number">2</span>}</pre></div></div>
+ <div class="content"><div class='highlight'><pre> <span class="constant">GroupDocs</span>.configure <span class="keyword">do</span> |groupdocs|
+ groupdocs.client_id = settings.client_id
+ groupdocs.private_key = settings.private_key</pre></div></div>
</li>
<li id="section-6">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-6">¶</a>
</div>
- <p>required parameters</p>
+ <p>Optionally specify API server and version</p>
</div>
- <div class="content"><div class='highlight'><pre> all_params = all_params = [<span class="string">'annotation_type'</span>, <span class="string">'box_x'</span>, <span class="string">'box_y'</span>, <span class="string">'text'</span>]</pre></div></div>
+ <div class="content"><div class='highlight'><pre> groupdocs.api_server = settings.base_path <span class="comment"># default is 'https://api.groupdocs.com'</span>
+ <span class="keyword">end</span>
+
+ <span class="keyword">if</span> settings.annotation_id != <span class="string">''</span>
+
+ file = <span class="constant">GroupDocs::Storage::File</span>.new({<span class="symbol">:guid</span> => settings.file_id}).to_document
+ annotation = file.annotations!()</pre></div></div>
</li>
<li id="section-7">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-7">¶</a>
</div>
- <p>added required parameters depends on annotation type ['text' or 'area']</p>
+ <p>Remove annotation from document</p>
</div>
+ <div class="content"><div class='highlight'><pre> remove = annotation.last.remove!()
+ message = <span class="string">"You delete the annotation id = <span class="subst">#{remove[<span class="symbol">:guid</span>]}</span> "</span>
+ <span class="keyword">else</span></pre></div></div>
+
+ </li>
+
+
+ <li id="section-8">
+ <div class="annotation">
+
+ <div class="pilwrap ">
+ <a class="pilcrow" href="#section-8">¶</a>
+ </div>
+ <p>Annotation types</p>
+
+ </div>
+
+ <div class="content"><div class='highlight'><pre> types = {<span class="symbol">:text</span> => <span class="string">"0"</span>, <span class="symbol">:area</span> => <span class="string">"1"</span>, <span class="symbol">:point</span> => <span class="string">"2"</span>}</pre></div></div>
+
+ </li>
+
+
+ <li id="section-9">
+ <div class="annotation">
+
+ <div class="pilwrap ">
+ <a class="pilcrow" href="#section-9">¶</a>
+ </div>
+ <p>Required parameters</p>
+
+ </div>
+
+ <div class="content"><div class='highlight'><pre> all_params = all_params = [<span class="string">'annotation_type'</span>, <span class="string">'box_x'</span>, <span class="string">'box_y'</span>, <span class="string">'text'</span>]</pre></div></div>
+
+ </li>
+
+
+ <li id="section-10">
+ <div class="annotation">
+
+ <div class="pilwrap ">
+ <a class="pilcrow" href="#section-10">¶</a>
+ </div>
+ <p>Added required parameters depends on annotation type ['text' or 'area']</p>
+
+ </div>
+
<div class="content"><div class='highlight'><pre> <span class="keyword">if</span> settings.annotation_type == <span class="string">'text'</span>
- all_params = all_params | [<span class="string">'box_width'</span>, <span class="string">'box_height'</span>, <span class="string">'annotationPosition_x'</span>, <span class="string">'annotationPosition_y'</span>]
+ all_params = all_params | [<span class="string">'box_width'</span>, <span class="string">'box_height'</span>, <span class="string">'annotationPosition_x'</span>, <span class="string">'annotationPosition_y'</span>, <span class="string">'range-position'</span>, <span class="string">'range-length'</span>]
<span class="keyword">elsif</span> settings.annotation_type == <span class="string">'area'</span>
all_params = all_params | [<span class="string">'box_width'</span>, <span class="string">'box_height'</span>]
<span class="keyword">end</span></pre></div></div>
</li>
- <li id="section-8">
+ <li id="section-11">
<div class="annotation">
<div class="pilwrap ">
- <a class="pilcrow" href="#section-8">¶</a>
+ <a class="pilcrow" href="#section-11">¶</a>
</div>
- <p>checking required parameters</p>
+ <p>Checking required parameters</p>
</div>
<div class="content"><div class='highlight'><pre> all_params.each <span class="keyword">do</span> |param|
raise <span class="string">'Please enter all required parameters'</span> <span class="keyword">if</span> params[param].empty?
<span class="keyword">end</span></pre></div></div>
</li>
- <li id="section-9">
+ <li id="section-12">
<div class="annotation">
<div class="pilwrap ">
- <a class="pilcrow" href="#section-9">¶</a>
+ <a class="pilcrow" href="#section-12">¶</a>
</div>
- <p>make a request to API using client_id and private_key</p>
+ <p>Make a request to API using client_id and private_key</p>
</div>
- <div class="content"><div class='highlight'><pre> files_list = <span class="constant">GroupDocs::Storage::Folder</span>.list!(<span class="string">'/'</span>, {}, {<span class="symbol">:client_id</span> => settings.client_id, <span class="symbol">:private_key</span> => settings.private_key})
+ <div class="content"><div class='highlight'><pre> files_list = <span class="constant">GroupDocs::Storage::Folder</span>.list!(<span class="string">'/'</span>, {})
+
document = <span class="string">''</span></pre></div></div>
</li>
- <li id="section-10">
+ <li id="section-13">
<div class="annotation">
<div class="pilwrap ">
- <a class="pilcrow" href="#section-10">¶</a>
+ <a class="pilcrow" href="#section-13">¶</a>
</div>
- <p>get document by file ID</p>
+ <p>Get document by file ID</p>
</div>
<div class="content"><div class='highlight'><pre> files_list.each <span class="keyword">do</span> |element|
<span class="keyword">if</span> element.respond_to?(<span class="string">'guid'</span>) == <span class="keyword">true</span> <span class="keyword">and</span> element.guid == settings.file_id
@@ -189,127 +249,183 @@
<span class="keyword">unless</span> document.instance_of? <span class="constant">String</span></pre></div></div>
</li>
- <li id="section-11">
+ <li id="section-14">
<div class="annotation">
<div class="pilwrap ">
- <a class="pilcrow" href="#section-11">¶</a>
+ <a class="pilcrow" href="#section-14">¶</a>
</div>
- <p>start create new annotation</p>
+ <p>Start create new annotation</p>
</div>
<div class="content"><div class='highlight'><pre> annotation = <span class="constant">GroupDocs::Document::Annotation</span>.new(<span class="symbol">document:</span> document.to_document)
- annotation.type = types[settings.annotation_type]</pre></div></div>
+
+
+ info = <span class="keyword">nil</span></pre></div></div>
</li>
- <li id="section-12">
+ <li id="section-15">
<div class="annotation">
<div class="pilwrap ">
- <a class="pilcrow" href="#section-12">¶</a>
+ <a class="pilcrow" href="#section-15">¶</a>
</div>
- <p>construct requestBody depends on annotation type
-text annotation</p>
+ <p>Construct requestBody depends on annotation type
+Text annotation</p>
</div>
<div class="content"><div class='highlight'><pre> <span class="keyword">if</span> settings.annotation_type == <span class="string">'text'</span>
- annotation.box = {<span class="symbol">x:</span> params[<span class="string">'box_x'</span>], <span class="symbol">y:</span> params[<span class="string">'box_y'</span>], <span class="symbol">width:</span> params[<span class="string">'box_width'</span>], <span class="symbol">height:</span> params[<span class="string">'box_height'</span>]}
- annotation.annotationPosition = {<span class="symbol">x:</span> params[<span class="string">'annotationPosition_x'</span>], <span class="symbol">y:</span> params[<span class="string">'annotationPosition_y'</span>]}</pre></div></div>
+ annotation.box = <span class="constant">GroupDocs::Document::Rectangle</span>.new ({<span class="symbol">x:</span> params[<span class="string">'box_x'</span>], <span class="symbol">y:</span> params[<span class="string">'box_y'</span>], <span class="symbol">width:</span> params[<span class="string">'box_width'</span>], <span class="symbol">height:</span> params[<span class="string">'box_height'</span>]})
+ annotation.annotationPosition = {<span class="symbol">x:</span> params[<span class="string">'annotationPosition_x'</span>], <span class="symbol">y:</span> params[<span class="string">'annotationPosition_y'</span>]}
+ range = {<span class="symbol">position:</span> params[<span class="string">'range-position'</span>], <span class="symbol">length:</span> params[<span class="string">'range-length'</span>]}
+ info = {<span class="symbol">:box</span> => annotation_box, <span class="symbol">:annotationPosition</span> => annotation_annotationPosition, <span class="symbol">:range</span> => range, <span class="symbol">:type</span> => types[settings.annotation_type.to_sym], <span class="symbol">:replies</span> => [{<span class="symbol">:text</span> => params[<span class="string">'text'</span>]}]}</pre></div></div>
</li>
- <li id="section-13">
+ <li id="section-16">
<div class="annotation">
<div class="pilwrap ">
- <a class="pilcrow" href="#section-13">¶</a>
+ <a class="pilcrow" href="#section-16">¶</a>
</div>
- <p>area annotation</p>
+ <p>Area annotation</p>
</div>
<div class="content"><div class='highlight'><pre> <span class="keyword">elsif</span> settings.annotation_type == <span class="string">'area'</span>
- annotation.box = {<span class="symbol">x:</span> params[<span class="string">'box_x'</span>], <span class="symbol">y:</span> params[<span class="string">'box_y'</span>], <span class="symbol">width:</span> params[<span class="string">'box_width'</span>], <span class="symbol">height:</span> params[<span class="string">'box_height'</span>]}
- annotation.annotationPosition = {<span class="symbol">x:</span> <span class="number">0</span>, <span class="symbol">y:</span> <span class="number">0</span>}</pre></div></div>
+ annotation_box = {<span class="symbol">x:</span> params[<span class="string">'box_x'</span>], <span class="symbol">y:</span> params[<span class="string">'box_y'</span>], <span class="symbol">width:</span> params[<span class="string">'box_width'</span>], <span class="symbol">height:</span> params[<span class="string">'box_height'</span>]}
+ annotation_annotationPosition = {<span class="symbol">x:</span> <span class="number">0</span>, <span class="symbol">y:</span> <span class="number">0</span>}
+ info = {<span class="symbol">:box</span> => annotation_box, <span class="symbol">:annotationPosition</span> => annotation_annotationPosition, <span class="symbol">:type</span> => types[settings.annotation_type.to_sym], <span class="symbol">:replies</span> => [{<span class="symbol">:text</span> => params[<span class="string">'text'</span>]}]}</pre></div></div>
</li>
- <li id="section-14">
+ <li id="section-17">
<div class="annotation">
<div class="pilwrap ">
- <a class="pilcrow" href="#section-14">¶</a>
+ <a class="pilcrow" href="#section-17">¶</a>
</div>
- <p>point annotation</p>
+ <p>Point annotation</p>
</div>
<div class="content"><div class='highlight'><pre> <span class="keyword">elsif</span> settings.annotation_type == <span class="string">'point'</span>
- annotation.box = {<span class="symbol">x:</span> params[<span class="string">'box_x'</span>], <span class="symbol">y:</span> params[<span class="string">'box_y'</span>], <span class="symbol">width:</span> <span class="number">0</span>, <span class="symbol">height:</span> <span class="number">0</span>}
- annotation.annotationPosition = {<span class="symbol">x:</span> <span class="number">0</span>, <span class="symbol">y:</span> <span class="number">0</span>}
+ annotation_box = {<span class="symbol">x:</span> params[<span class="string">'box_x'</span>], <span class="symbol">y:</span> params[<span class="string">'box_y'</span>], <span class="symbol">width:</span> <span class="number">0</span>, <span class="symbol">height:</span> <span class="number">0</span>}
+ annotation_annotationPosition = {<span class="symbol">x:</span> <span class="number">0</span>, <span class="symbol">y:</span> <span class="number">0</span>}
+
+ info = {<span class="symbol">:box</span> => annotation_box, <span class="symbol">:annotationPosition</span> => annotation_annotationPosition, <span class="symbol">:type</span> => types[settings.annotation_type.to_sym], <span class="symbol">:replies</span> => [{<span class="symbol">:text</span> => params[<span class="string">'text'</span>]}] }
<span class="keyword">end</span></pre></div></div>
</li>
- <li id="section-15">
+ <li id="section-18">
<div class="annotation">
<div class="pilwrap ">
- <a class="pilcrow" href="#section-15">¶</a>
+ <a class="pilcrow" href="#section-18">¶</a>
</div>
- <p>call create method</p>
+ <p>Call create method</p>
</div>
- <div class="content"><div class='highlight'><pre> annotation.create!({<span class="symbol">:client_id</span> => settings.client_id, <span class="symbol">:private_key</span> => settings.private_key})</pre></div></div>
+ <div class="content"><div class='highlight'><pre> annotation.create!(info)
+ id = annotation.document.file.id</pre></div></div>
</li>
- <li id="section-16">
+ <li id="section-19">
<div class="annotation">
<div class="pilwrap ">
- <a class="pilcrow" href="#section-16">¶</a>
+ <a class="pilcrow" href="#section-19">¶</a>
</div>
- <p>add annotation reply</p>
+ <p>Get document guid</p>
</div>
- <div class="content"><div class='highlight'><pre> reply = <span class="constant">GroupDocs::Document::Annotation::Reply</span>.new(<span class="symbol">annotation:</span> annotation)
- reply.text = params[<span class="string">'text'</span>]
- reply.create!({<span class="symbol">:client_id</span> => settings.client_id, <span class="symbol">:private_key</span> => settings.private_key})
+ <div class="content"><div class='highlight'><pre> guid = annotation.document.file.guid
+ <span class="keyword">case</span> settings.base_path
+
+ <span class="keyword">when</span> <span class="string">'https://stage-api-groupdocs.dynabic.com'</span>
+ url = <span class="string">"http://stage-apps-groupdocs.dynabic.com/document-annotation2/embed/<span class="subst">#{guid}</span>"</span>
+ <span class="keyword">when</span> <span class="string">'https://dev-api-groupdocs.dynabic.com'</span>
+ url = <span class="string">"http://dev-apps-groupdocs.dynabic.com/document-annotation2/embed/<span class="subst">#{guid}</span>"</span>
+ <span class="keyword">else</span>
+ url = <span class="string">"http://apps.groupdocs.com/document-annotation2/embed/<span class="subst">#{guid}</span>"</span>
+ <span class="keyword">end</span></pre></div></div>
+
+ </li>
+
+
+ <li id="section-20">
+ <div class="annotation">
+
+ <div class="pilwrap ">
+ <a class="pilcrow" href="#section-20">¶</a>
+ </div>
+ <p>Add the signature in url</p>
+
+ </div>
+
+ <div class="content"><div class='highlight'><pre> url = <span class="constant">GroupDocs::Api::Request</span>.new(<span class="symbol">:path</span> => url).prepare_and_sign_url</pre></div></div>
+
+ </li>
+
+
+ <li id="section-21">
+ <div class="annotation">
+
+ <div class="pilwrap ">
+ <a class="pilcrow" href="#section-21">¶</a>
+ </div>
+ <p>Set iframe with document GUID</p>
+
+ </div>
+
+ <div class="content"><div class='highlight'><pre> iframe = <span class="string">"<iframe src='<span class="subst">#{url}</span>' frameborder='0' width='720' height='600'></iframe>"</span>
+
<span class="keyword">end</span>
+ <span class="keyword">end</span>
+
<span class="keyword">rescue</span> <span class="constant">Exception</span> => e
err = e.message
<span class="keyword">end</span></pre></div></div>
</li>
- <li id="section-17">
+ <li id="section-22">
<div class="annotation">
<div class="pilwrap ">
- <a class="pilcrow" href="#section-17">¶</a>
+ <a class="pilcrow" href="#section-22">¶</a>
</div>
<p>set variables for template</p>
</div>
- <div class="content"><div class='highlight'><pre> haml <span class="symbol">:sample11</span>, <span class="symbol">:locals</span> => {<span class="symbol">:userId</span> => settings.client_id, <span class="symbol">:privateKey</span> => settings.private_key, <span class="symbol">:fileId</span> => settings.file_id, <span class="symbol">:annotationType</span> => settings.annotation_type, <span class="symbol">:annotationId</span> => (<span class="keyword">defined</span>? annotation.id) ? annotation.id <span class="symbol">:</span> <span class="keyword">nil</span>, <span class="symbol">:annotationText</span> => params[<span class="string">'text'</span>], <span class="symbol">:err</span> => err}
+ <div class="content"><div class='highlight'><pre> haml <span class="symbol">:sample11</span>, <span class="symbol">:locals</span> => {<span class="symbol">:clientId</span> => settings.client_id,
+ <span class="symbol">:privateKey</span> => settings.private_key,
+ <span class="symbol">:fileId</span> => settings.file_id,
+ <span class="symbol">:annotationType</span> => settings.annotation_type,
+ <span class="symbol">:annotationId</span> => id,
+ <span class="symbol">:annotationText</span> => params[<span class="string">'text'</span>],
+ <span class="symbol">:err</span> => err,
+ <span class="symbol">:iframe</span> => iframe,
+ <span class="symbol">:message</span> => message}
<span class="keyword">end</span></pre></div></div>
</li>
</ul>