CREAR UN USUARIO QUE PUEDA RESERVAR EN DIFERENTES EMPRESAS DE UNA CUENTA MULTICENTRO

Cuando se crea una reserva para un usuario, este pertenece a una determinada empresa. Si queremos que ese usuario se comparta entre distintas empresas la solución es utilizar addsocialuser combinado con la función addsocialevent.

Este tipo de caso puede ser útil si tenemos una red social o portal con diferentes centros para los que queremos que se reserve con el mismo usuario y que no se cree un usuario nuevo cada vez que se hace una reserva en una empresa diferente.

Hay que recordar que ese usuario social que se añade se supone que ya estará validado en la aplicación web o red social en la que se va a reservar. Es decir primero se realizará una validación local en el site que se está reservando y una vez hecho esto se llamará a addsocialuser en caso de que sea la primera vez que reserva. Esta parte se tendrá que controlar en el lado de la aplicación que contacte con la API.

Recuerda que necesitarás tener una pareja de API keys de cuenta multicentro para poder utilizar esta función. Además tendrás que conocer las claves públicas de cada empresa para la que quieras añadir el evento y esa empresas deberán pertenecer al multicentro.

public static void main(String[] args) throws Exception{
 CRestClient oRestClient = new CRestClient();

 MessageDigest md = MessageDigest.getInstance(«MD5»);
 String sPass = «testpassword»;
 md.update(sPass.getBytes());
  byte[] digest = md.digest();
  System.out.println(digest);
 StringBuffer sb = new StringBuffer();
  for (byte b : digest) {
   sb.append(Integer.toHexString((int) (b & 0xff)));
  }

 sPass = sb.toString();

 String sUser = oRestClient.addSocialUser(«test_user_name», «234232423», «myemail@email.com», sPass, «json», true);
 sUser=»[«+sUser+»]»;
 JSONParser parser=new JSONParser();
 JSONArray obj=(JSONArray) parser.parse(sUser);
 HashMap hashUser=(HashMap)((JSONObject)obj.get(0)).get(«user»);
 if(hashUser.get(«status»).equals(«true»)){
  System.out.println((String)hashUser.get(«id»));

  String sEvent = oRestClient.addSocialEvent(«125c0001dc03ff6691423e13fcfe83616», «myemail@email.com», «id_agenda», «id_service»,
«2013-11-01», «2013-11-01», 540, 600, «comments»,
«tittle of the appointment», «json», true);

  sEvent=»[«+sEvent+»]»;
  parser=new JSONParser();
  obj=(JSONArray) parser.parse(sEvent);
  HashMap hashEvent=(HashMap)((JSONObject)obj.get(0)).get(«event»);

  System.out.println((String)hashEvent.get(«id»));

 }
}

No es necesario utilizar los dos métodos. En el caso anterior hemos creado el usuario y el evento. Puede haber ocasiones en las que sólo te interese crear un usuario social:

String sUser = oRestClient.addSocialUser(«test_user_name», «234232423», «myemail@email.com», sPass, «json», true);

Esta función tiene un parámetro opcional que nos permite indicar una contraseña por defecto para ese usuario.

String sUser = oRestClient.addSocialUser(«test_user_name», «234232423», «myemail@email.com», sPass, «json», true, sPass);

O crear un evento:

String sEvent = oRestClient.addSocialEvent(«125c0001dc03ff6691423e13fcfe83616», «myemail@email.com», «id_agenda», «id_service»,
   «2013-11-01», «2013-11-01», 540, 600, «comments»,
   «tittle of the appointment», «json», true);

Si quieres ver más información sobre addSocialUser(pincha aquí para ver la referencia) o sobre addSocialEvent(pincha aquí para ver la referencia)

Todas las peticiones son devueltas con un campo “status”. Ese campo indica si la petición fue correcta o falló.

En caso de fallo se devuelve un xml o json con el siguiente formato.

En todas las llamadas se devuelve un campo status que indica el resultado de la petición. En caso de que haya un error, dependiendo de si has solicitado la petición en json o en xml se devolverá con el siguiente formato:

xml
<?xml version=’1.0′ encoding=’utf-8′?>
<company>
<status>false</status>
<id>error id</id>
<message>error message</message>
</company>

json
 {«company»:
  {
   «status»:false,
   «id»:error id,
   «message»:error message
  }
}

Si quieres saber más sobre esta función puedes acceder a la referencia completa.