...
Puedes encontrar estos Javascript aquí: https://github.com/onesaitplatform/onesait-cloud-platform-clientlibraries/tree/master/javascript-client/js
Ejemplo
En el ejemplo se utiliza un archivo adicional llamado JsonEditor.js para mostrar la respuesta de forma más visual, pero no es estrictamente necesario.
Este archivo puedes encontrarlo aquí: https://github.com/onesaitplatform/onesait-cloud-platform-clientlibraries/tree/master/javascript-client/json
Ejemplo
Para realizar este ejemplo, entramos en el siguiente archivo HTML, op_apiJs_websocketExample.html, se encuentra en la siguiente ubicación: https://gitlab.devops.onesait.com/onesait/platform/engine/onesait-platform/onesait-cloud-platform-clientlibraries/-/tree/develop/javascript-client, el cual va a ser
el archivo que tenemos que modificar con las siguientes indicaciones:
Para empezar, debes instanciar un objeto de tipo OPClient para crear un cliente de OnesaitPlatform:
...
config['url'] = "http://lab.onesaitplatform.com/iot-broker/message";
config['deviceTemplate'] = 'Ticketing AppTicketingApp'; (Debe ser igual que la template que definiste en IoTClient)
config['token'] = 'e7ef0742d09d4de5a3687f0cfdf7f6260e9264405327494dac6551d01aac7e97'; (token de deviceTemplate )
config['device'] = 'WebTicketingApp01'; (Nombre que le darás al dispositivo)
...
Por último, debes conectarte con la plataforma usando el método connect:
client.connect();
...
...
Ejemplo con otra Ontología (AirQuality):
...
Una vez realizado este paso, podrás invocar todos los métodos implementados en el objeto OPClient:
...
Se aceptan tanto consultas nativas como SQL. También puedes realizar consultas SQL que incluyan SELECT/UPDATE/DELETE.
...
Nativo
...
TO-DO (EJEMPLO UPDATE/DELETE)con la Ontología/Entidad Ticket
...
SQL con la Ontología/Entidad Ticket
...
Si queremos filtrar la consulta:
...
Consulta de la Ontología/Entidad Ticket con UPDATE:
Utilizando la Query: update Ticket set Ticket.name ="Angela" where _id=OID("62fccab387b0ef1666c25da1") and Ticket.name="Pepe"
...
Consulta de la Ontología/Entidad Ticket con DELETE:
Utilizando la Query: delete from Ticket where _id=OID("62fccab387b0ef1666c25da1") and Ticket.name="Angela"
...
INSERT
La operación Insert permite insertar nuevos datos en la ontología. Asegúrate de que los datos tienen la estructura definida en el Esquema JSON de la ontología. De lo contrario no pasará la validación del Esquema. Para asegurarse de que el formato es correcto, la mejor opción es copiarlo directamente del Esquema de la Ontología (Ontology Schema), que devuelve el id de la instancia insertada.
...
Ten en cuenta que puedes pasar a la función un conjunto de instancias de Ontología como datos, por ejemplo:
...
Esta Insertando en la Ontología Ticket
...
Instance: {"Ticket": {"identification": "Nuevo Ticket","status": "true","email": "ticket@gmail.com","name": "Pepe","response_via": "","file": {"data": "","media": {"name": "","storageArea": "SERIALIZED","binaryEncoding": "Base64","mime": "application/pdf"}},"coordinates": {"coordinates": {"latitude": 12,"longitude": 45},"type": "Point"}}}
Como se muestra en la imagen, esta operación devolverá el ID del registro insertado (o los IDs en caso de que los datos sean un array), que podrás utilizar más tarde para realizar operaciones 'por id'.
...
En el primer caso, puede que quieras usar updateById. Funciona de forma similar a la función Insert.
...
Instance: {"Ticket": {"identification": "Nuevo Update de Ticket","status": "true","email": "ticket@gmail.com","name": "Pepe","response_via": "","file": {"data": "","media": {"name": "","storageArea": "SERIALIZED","binaryEncoding": "Base64","mime": "application/pdf"}},"coordinates": {"coordinates": {"latitude": 12,"longitude": 45},"type": "Point"}}}
Como se muestra en la imagen, en esta operación se modificaran los datos del id asociado, en este caso los atributos “identification” y “status“
En el segundo caso, puedes usar la función 'update'. Permite modificar un conjunto de instancias seleccionadas mediante un parámetro “query”. Esta función sólo acepta consultas nativas. Si quieres hacer actualizaciones mediante SQL, usa la función query.
...
(Como hemos visto anteriormente).
...
Update con la Ontología/Entidad Ticket
...
Utilizamos la Query: db.Ticket.update({'Ticket.email':{$eq:'nuevoticket@gmail.com'}}, ($set:{'Ticket.email':'Nuevogamil@gamil.com'}}))
En la imagen anterior, se puede observar que como resultado se obtiene el numero de registros modificados por la consulta.
DELETE
Si quieres borrar una sola instancia, puedes usar 'removeById'.
...
Como resultado se obtiene la confirmación de la eliminación del registro (Se indica que se ha eliminado un registro).
Por otro lado, si quieres eliminar todas las instancias que coincidan con un filtro en particular, usa la función 'remove'. Esta función, al igual que la de de forma similar a la función update, sólo acepta queries nativas como parámetro.
...
Delete en la Ontología Ticket
...
SIMULATE
La simulación sirve para introducir o insertar datos en nuestra entidad, en la cual le ponemos tiempo que es la rapidez en la que se va ejecutando, así podemos comprobar y simular que todo funciona correctamente y no se produce ningún fallo.
...
Si queremos detener la simulación pulsando el botón “Stop“ se detendrá la generación de registros.
SUBSCRIPTIONS
Este API te permite suscribirte a una Ontología. Al suscribirte, cualquier inserción/actualización relacionada con la ontología suscrita, se notificará a tu cliente, causando una ejecución de tu función de callback definidapasada para manejar las notificaciones de suscripción.
...
La segunda función de callback se ejecutará cada vez que llegue una notificación/mensaje de suscripción.
...
Si haces clic en el ejemplo de 'subscribe', y luego realizas una inserción, cuando vuelvas a la pestaña de suscripción, verás que has recibido la instancia que acabas de insertar.
...
En el campo Subscription se introducirá el identificador de la suscripción existente en plataforma, en “Measure Value“ introduciremos el valor que se utilizara para realizar la validación definida en la suscripción. Tras Pulsar sobre el botón “Suscribe“, el cliente realizara la suscripción y se mostrara en el campo subscriptionId el identificador de dicha suscripción.
Si se realizan inserciones en la entidad que cumplan la condición definida en la suscripción, se recibirá una notificación en el cliente y se mostrará el mensaje por pantalla incluyendo la instancia insertada.
...
Para des suscribirse bastara con pulsar en el botón “Unsubscribe“.
La función para cancelar la suscripción :
...
La función de callback se ejecutará cuando llegue el mensaje de confirmación.
...