# Suscripción de usuarios
## Consideraciones
* Los usuarios (perfiles de Induxsoft) pueden relacionarse a espacios de trabajo, equipos y roles.
* Si el usuario no tiene un perfil al momento de ser "invitado" a un espacio, equipo o rol; se le enviará automáticamente un correo electrónico solicitándosele que se registre (cree un perfil) en induxsoft.net
* Si el usuario ya tiene un perfil (registrado en induxsoft.net), pero no pertenece al espacio de trabajo o algún equipo, se le enviará un correo electrónico invitándole a unirse al espacio de trabajo (confirmación o aceptación)
* Si el usuario (ya tiene un perfil) y ya pertenece al espacio de trabajo (a algún equipo o rol), se suscribirá al equipo o rol que se indique sin invitación (es decir que no requiere que el usuario confirme o acepte explícitamente), solo será notificado del evento
## Inscripción
Solicitud
```
Method: POST
Content-Type: application/json;charset=utf-8
{
"ids":"Identificador de sesión válida (token)",
"operation":"register",
"owner":"NIC de la organización, si se omite se asume al usuario como propietario (omitible)",
"to":"Id del equipo de trabajo, equipo o rol al que se inscribirá al usuario",
"user":"Correo electrónico, teléfono o id del usuario a inscribir"
}
```
Respuesta exitosa
```
Content-Type: application/json;charset=utf-8
{
"success":true,
"data":
{
... Datos informativos de la operación ...
}
}
```
## Des-inscripción
Solicitud
```
Method: POST
Content-Type: application/json;charset=utf-8
{
"ids":"Identificador de sesión válida (token)",
"operation":"unregister",
"owner":"NIC de la organización, si se omite se asume al usuario como propietario (omitible)",
"from":"Id del equipo de trabajo, equipo o rol al que está inscrito el usuario",
"user":"Correo electrónico, teléfono o id del usuario a desinscribir"
}
```
Respuesta exitosa
```
Content-Type: application/json;charset=utf-8
{
"success":true,
"data": null
}
```
## Consulta de invitaciones pendientes
Solicitud
```
Method: POST
Content-Type: application/json;charset=utf-8
{
"ids":"Identificador de sesión válida (token)",
"operation":"pending_invitations",
"target":"ID del espacio de trabajo u objeto al que se invitó al usuario",
}
```
Respuesta exitosa
```
Content-Type: application/json;charset=utf-8
{
"success": 1,
"data": [{
"created": "Fecha y hora de creación de la invitación",
"sended": "Fecha y hora de envío del correo de invitación",
"id": "ID de la invitación",
"email": "Correo del usuario invitado",
"error": null (es null si no ocurrió ningún error, en caso contrario contiene una cadena con la descripción del error)
},
...
]
}
```
## Eliminar invitación
La invitación puede eliminarse siempre que no haya sido aceptada, si el usuario ya aceptó deberá "desinscribirlo" con el servicio correspondiente.
Solicitud
```
Method: POST
Content-Type: application/json;charset=utf-8
{
"ids":"Identificador de sesión válida (token)",
"operation":"remove_invitation",
"invitation":"ID del de la invitación a eliminar",
}
```
Respuesta exitosa
```
Content-Type: application/json;charset=utf-8
{
"success": 1,
"data": null
}
```