You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-espanol@openmeetings.apache.org by Ramón Zárate Moedano <ho...@gmail.com> on 2017/04/12 04:10:20 UTC

WebService para contar usuarios en salas

Buenas noches a todos:

OM 3.2.0 (Revisión 1782178)
Moodle 3.2
OM-moodle-plugin 2.0.2.3 2017031011

Estoy haciendo una integración de moodle 3.2 con openmeetings(3.2.0) a
través del plugin de om para moodle. Además de las funcionalidades que
ofrece el plugin, necesito agregar la funcionalidad de saber cuantos
usuarios concurrentes están en cada sala de om.

Para realizar dicha tarea, tengo el webservice RoomWebService (
http://openmeetings.apache.org/openmeetings-webservice/apidocs/index.html).

Usando el servicio "room" y el método "counters". Adjunto su documentación:

/* START: DOCUMENTATION */

    counters

    @GET
     @Path(value="/counters")
    public List<RoomCountBean> counters(@QueryParam(value="sid")

 String sid,

 @QueryParam(value="id")

 List<Long> ids)
                                                                throws
org.apache.openmeetings.webservice.error.ServiceException

    Returns current users for rooms ids

    Parameters:
        sid - - The SID of the User. This SID must be marked as Loggedin
        ids - - id of the room you need counters for
    Returns:
        - current users for rooms ids
    Throws:
        org.apache.openmeetings.webservice.error.ServiceException


/* END: DOCUMENTATION */

Con esta documentación se contruye una url que queda de la siguiente manera:

http://OM-Server-IP:5080/meetingcenter/services/room/counters/?&sid=d69ec56c-a2e9-4fd5-9712-e460748dc1db&id=5

Donde
 meetingcenter es la carpeta de instalación de om (contexto personalizado)
 room/counters es el servicio con el método del llamado
 sid=d69ec56c-a2e9-4fd5-9712-e460748dc1db parámetro de login (token)
  id=5 que sería el id de la sala que se quiere consultar.

Creo que éste último es el que tiene el problema.

La documentación hace referencia a tipo List<Long>,
por lo que podría ser un arreglo.

Éstos han sido las respuestas según los valores que se han enviado en la
petición para éste último parámetro

 id=5: "No message body writer has been found for class
java.util.ArrayList, ContentType: application/json"

 id=[5]: (NULL). En la consola del navegador aparece estado 404

 id={5}: (NULL). En la consola del navegador aparece estado 400

 id[]=5: "HTTP Status 500 - Failed to execute query "SELECT r FROM Room r
WHERE r.deleted = false AND r.id IN :ids". Check the query syntax for
correctness. See nested exception for details."

 id[0]=5: "HTTP Status 500 - Failed to execute query "SELECT r FROM Room r
WHERE r.deleted = false AND r.id IN :ids". Check the query syntax for
correctness. See nested exception for details."


Al parecer no estoy enviando el arreglo de id's de salas de manera
correcta.

Para corroborar que se está enviando información correcta como hash se
solicita información a otro servicio web con resultados positivos. Por
ejemplo:


http://OM-Server-IP:5080/meetingcenter/services/user?sid=f02e731d-2fa4-496c-a78f-86f9d6c6b382

y la respuesta es un arreglo que entrega la lista de todos los usuarios que
se tienen en esta instancia:
  {"userDTO":[{"address":{"country":"US","deleted":false,"email":"
root@domain.com
","id":1},"firstname":"firstname","id":1,"languageId":8,"lastname":"lastname","login":"root","rights":["Admin","Soap","Room","Login","Dashboard"],"timeZoneId":"America/Mexico_City","type":"user"}]}



De antemano agradezco cualquier ayuda.