Compartir-lotes-campos
Compartir
APIs usuarios
Compartir
Objeto ResourceShareIntention
{
"email": "",
"resource_id": 123,
"role_id": 2-5,
"user_id": 123 //opcional
}
Cada objeto representa la intencion de compartir un recurso a un usuario.
POST /api/sharing
Se envía un objeto ResourceShareIntention por cada acción de compartir que se queira ejecutar. Se verificará que el usuario que hace la consulta tenga permisos sobre todos los recursos solicitados.
De los emails provistos, se busca el usuario destino que corresponda priorizando según el criterio:
- usuario dentro del mismo espacio del que comparte (o personal-personal)
- usuario interno de espacio NO AISLADO
- usuario personal
- usuario externo de espacio NO AISLADO (ordenados cronológicamente)
- usuario de espacio aislado (internos primero luego cronológicamente)
En caso que el email no exista y no se corresponda con el dominio de un espacio activo, se crea el usuario y se envía email de invitación.
En caso que no se pueda compartir a un email, se indican en la respuesta.
Body application/json:
// Para compartir lotes
{
"fields": [ResourceShareIntention, ...] // sin user_id
}
// Para compartir campos
{
"farms": [ResourceShareIntention, ...] // sin user_id
}
Permiso validado:
- En caso de solicitar
fields, se valida el permiso28 - En caso de solicitar
farms, se valida el permiso35
Respuesta:
El endpoint responde con el detalle de los usuarios a los que pudo compartir y a los que no
{
"info": "ok",
"data": {
"resource_type": "fields",
"shared": [ResourceShareIntention, ...], // con user_id
"not_shared": [ResourceShareIntention, ...], // sin user_id
}
}
info:"ok"o"partial"- data
resource_type:"fields"o"farms"segun lo solicitadoshared:[ResourceShareIntention, ...]conuser_idindicando los que se pudieron compartirnot_shared:[ResourceShareIntention, ...]sinuser_idindicando los que no se pudieron compartir
Errores posibles:
En caso de error, se responde con un body application/json que tiene una key code indicando el error:
code"SHARING_ERROR": No se puede compartir a ninguno de los solicitados-11: el usuario no tiene permisos para compartir sobre al menos 1 recurso
Dejar de Compartir
Objeto ResourceSharingCancellationIntention
{
"resource_id": 123,
"user_id": 123
}
Cada objeto representa la intencion de dejar de compartir un recurso a un usuario.
DELETE /api/sharing
Se envía un objeto ResourceSharingCancellationIntention por cada acción de dejar de compartir que se queira ejecutar.
Body application/json:
// Para dejar de compartir lotes
{
"fields": [ResourceSharingCancellationIntention, ...]
}
// Para dejar de compartir campos
{
"farms": [ResourceSharingCancellationIntention, ...]
}
Permiso validado:
- En caso de solicitar
fields, se valida el permiso28 - En caso de solicitar
farms, se valida el permiso35
Respuesta:
El endpoint responde con los recursos que se dejaron de compartir
{
"info": "ok",
"data": {
"resource_type": "fields",
"cancelled": [ResourceSharingCancellationIntention, ...]
}
}
info:"ok"o"partial"- data
resource_type:"fields"o"farms"segun lo solicitadocancelled:[ResourceSharingCancellationIntention, ...]indicando los que se dejaron de compartir
Errores posibles:
En caso de error, se responde con un body application/json que tiene una key code indicando el error:
code"SHARING_ERROR": No se puede dejar de compartir a ninguno de los solicitados-11: el usuario no tiene permisos para dejar de compartir sobre al menos 1 recurso