This is an automated email from the ASF dual-hosted git repository.

sebawagner pushed a commit to branch 
feature/OPENMEETINGS-2661-update-rest-examples-add-node-js-module
in repository https://gitbox.apache.org/repos/asf/openmeetings.git

commit 73a96cdf1757579d46dca4043b698504191a187d
Author: Sebastian Wagner <seba.wag...@gmail.com>
AuthorDate: Sun Sep 12 11:22:14 2021 +1200

    OPENMEETINGS-2661 Add Rest examples and add Node.js Module.
---
 .../src/site/xdoc/ConfluencePlugin.xml             |  2 +-
 openmeetings-server/src/site/xdoc/JiraPlugin.xml   |  2 +-
 .../src/site/xdoc/RestAPISample.xml                | 58 ++++++++++++++++++++--
 openmeetings-webservice/pom.xml                    | 16 +++++-
 4 files changed, 71 insertions(+), 7 deletions(-)

diff --git a/openmeetings-server/src/site/xdoc/ConfluencePlugin.xml 
b/openmeetings-server/src/site/xdoc/ConfluencePlugin.xml
index 79b00c9..694e464 100644
--- a/openmeetings-server/src/site/xdoc/ConfluencePlugin.xml
+++ b/openmeetings-server/src/site/xdoc/ConfluencePlugin.xml
@@ -43,7 +43,7 @@
 
                <section name="Demo video">
                        <p>The demo video of Confluence plugin show you the 
plugin in action </p>
-                       <iframe width="640" height="390" 
src="https://www.youtube.com/embed/YFKlXggtld0"; frameborder="0" 
allowfullscreen=""></iframe>
+                       <iframe width="640" height="390" 
src="https://www.youtube.com/embed/D1XOxgpfr5c"; frameborder="0" 
allowfullscreen=""></iframe>
                </section>
        </body>
 </document>
diff --git a/openmeetings-server/src/site/xdoc/JiraPlugin.xml 
b/openmeetings-server/src/site/xdoc/JiraPlugin.xml
index d1e268f..8ee41cc 100644
--- a/openmeetings-server/src/site/xdoc/JiraPlugin.xml
+++ b/openmeetings-server/src/site/xdoc/JiraPlugin.xml
@@ -43,7 +43,7 @@
 
                <section name="Demo video">
                        <p>The demo video of Jira plugin show you the plugin in 
action </p>
-                       <iframe width="640" height="390" 
src="https://www.youtube.com/embed/xBdYj-OZvlc"; frameborder="0" 
allowfullscreen=""></iframe>
+                       <iframe width="640" height="390" 
src="https://www.youtube.com/embed/gbp4_Lpfrno"; frameborder="0" 
allowfullscreen=""></iframe>
                </section>
 
        </body>
diff --git a/openmeetings-server/src/site/xdoc/RestAPISample.xml 
b/openmeetings-server/src/site/xdoc/RestAPISample.xml
index 07ce23b..4148841 100644
--- a/openmeetings-server/src/site/xdoc/RestAPISample.xml
+++ b/openmeetings-server/src/site/xdoc/RestAPISample.xml
@@ -22,10 +22,13 @@
        <body>
                <section name="Introduction">
                        <p> For a detailed instruction which services, methods 
and params are available see the list in the <a 
href="/openmeetings-webservice/apidocs/index.html" target="_blank">SOAP/REST 
API</a> .
-                               ALL methods that are implemented for the SOAP 
API are also available via REST.
+                               ALL methods that are implemented for the SOAP 
API are also available via REST. 
                        </p>
+                       <div class="bd-callout bd-callout-info">
+                               There is a <a 
href="https://openmeetings.apache.org/swagger/"; target="_blank">OpenAPI 
spec</a> published in swagger format.
+                       </div>
                        <div>
-                               you can query methods of each service using 
following suffixes
+                               You can query methods of each service using 
following suffixes
                                <ul>
                                        <li>SOAP: <tt>?wsdl</tt> suffix, for 
example 
<tt>https://localhost:5443/openmeetings/services/UserService?wsdl</tt></li>
                                        <li>REST: as xml <tt>?_wadl</tt> for 
example <tt>https://localhost:5443/openmeetings/services/user?_wadl</tt></li>
@@ -36,7 +39,56 @@
                                </div>
                        </div>
                </section>
-               <section name="How to get room hash via REST">
+               <section name="How to integrate using Node.js">
+                       <p>You can integrate OpenMeetings via the Rest API into 
your Node project.</p>
+                       <div class="bd-callout bd-callout-info">
+                               There is a community sponsored free module for 
integrating with Node.JS see: <a 
href="https://www.npmjs.com/package/openmeetings-node-client"; 
target="_blank">openmeetings-node-client</a>
+                       </div>
+                       <p>Install the module</p>
+<source>
+npm install openmeetings-node-client
+</source>
+                       <p>Eg generate a unique hash to enter a conference 
room:</p>
+                               <ol>
+                                       <li>Login to service</li>
+                                       <li>Generate Hash for entering a 
conference room</li>
+                                       <li>Construct Login URL</li>
+                               </ol>
+<source>
+const {UserServiceApi, Configuration} = require("openmeetings-node-client");
+const BASE_URL = "http://localhost:5080/openmeetings";
+
+const config = new Configuration({
+    basePath: BASE_URL + "/services"
+})
+// 1. Login to service
+const loginResult = await userService.login("admin", "!HansHans")
+
+// 2. Generate Hash for entering a conference room
+const hashResult = await userService.getRoomHash(sessionId, {
+        firstname: "John",
+        lastname: "Doe",
+        externalId: "uniqueId1",
+        externalType: "myCMS",
+        login: "john.doe",
+        email: "john....@gmail.com"
+    }, {
+        roomId: 1,
+        moderator: true
+    })
+    
+// 3. Construct Login URL
+const loginUrl = `${BASE_URL}/hash?secure=${hashResult.message}`
+</source>
+               <p>Full sample source code for can be found at: 
+                       <ol>
+                               <li>JavaScript/ES6 example using simplistic 
Express website see <a 
href="https://github.com/om-hosting/openmeetings-node-js-sample-project"; 
target="_BLANK">Github openmeetings-node-js-sample-project</a></li>
+                               <li>TypeScript example using simplistic Express 
website <a 
href="https://github.com/om-hosting/openmeetings-node-sample-project"; 
target="_BLANK">Github openmeetings-node-sample-project</a></li>
+                       </ol>
+               </p>
+               <p>More in depth examples and use cases can be found at the 
module page <a href="https://www.npmjs.com/package/openmeetings-node-client"; 
target="_blank">https://www.npmjs.com/package/openmeetings-node-client</a></p>
+               </section>
+               <section name="How to get room hash via REST vis jQuery">
                        <ul>
                                <li>
                                        First of all you need to perform login 
and get authorized SID to perform authorized operations
diff --git a/openmeetings-webservice/pom.xml b/openmeetings-webservice/pom.xml
index d9e94a0..ac157f2 100644
--- a/openmeetings-webservice/pom.xml
+++ b/openmeetings-webservice/pom.xml
@@ -70,11 +70,23 @@
                                        <swaggerConfig>
                                                <info>
                                                        <title>Apache 
OpenMeetings API</title>
+                                                       <description>
+                                                       <![CDATA[
+                                                               Integration API 
enables to connect to an OpenMeetings instance, eg for generating users, create 
links to directly access conference rooms.<br/><br/>
+                                                               <b>It is mainly 
designed for Server2Server integration, for example to integrate into your 
website, CMS or 3rd party application</b><br/><br/>
+                                                               For examples 
how to use the Rest API see <a 
href="https://openmeetings.apache.org/RestAPISample.html"; 
target="_BLANK">https://openmeetings.apache.org/RestAPISample.html</a>.<br/><br/>
+                                                               Community 
contributed modules for using this API include for example:
+                                                               <ul>
+                                                                       <li><a 
href="https://openmeetings.apache.org/RestAPISample.html#how-to-integrate-using-nodejs";
 target="_BLANK"> Node.js module for using API</a></li>
+                                                               </ul>
+                                                               Other community 
plugins using this API for Moodle, SugarCRM, Drupal, Joomla can be found in the 
Configuration>Plugins section at <a href="https://openmeetings.apache.org"; 
target="_BLANK">https://openmeetings.apache.org</a>
+                                                       ]]>
+                                                       </description>
                                                        
<version>${project.version}</version>
                                                        <contact>
                                                                
<email>d...@openmeetings.apache.org</email>
-                                                               <name>Apache 
OpenMeetings Developer group</name>
-                                                               
<url>https://openmeetings.apache.org</url>
+                                                               <name>Apache 
OpenMeetings Rest Examples and Documentation</name>
+                                                               
<url>https://openmeetings.apache.org/RestAPISample.html</url>
                                                        </contact>
                                                        <license>
                                                                
<url>https://www.apache.org/licenses/LICENSE-2.0</url>

Reply via email to