Gestión de usuarios

En este apartado se abordan los aspectos más destacables sobre la creación, consulta de datos  e integración de usuarios ya existentes en el dominio del cliente.

Usuario (User)

En el objeto User destacan los siguientes atributos:

  • id: Identificador del usuario
  • name: Nombre del usuario
  • surname1: Apellidos del usuario
  • doc_num: Número de documento del usuario (NIF/NIE válido o pasaporte en cualquier otro caso)
  • birth: Fecha de nacimiento (Date)
  • surname2: (Deprecado: No se utiliza)
  • email: (Deprecado)
  • phone: (Deprecado)
  • tutor_id: (Deprecado)
  • emails: Objetos email. (Email[])
  • phones: Objetos teléfono. (Phone[])
  • tutors: Tutores del usuario (User[])
  • wards: Tutelados del usuario (User[])

Objeto de respuesta tipo usuario(User)

HTTP/1.1 200 OK
{
   "data": {
        "id": "xopxon45qlekj78m9gzy0avdbr96m37n",
        "name": "Pepe Zalt",
        "surname1":"apellio uno",
        "surname2":"apellio dos",
        "email": "pepezalt@mail.dev",
        "doc_num": null,
        "phone": null,
        "gender": 1,
        "birth": null,
        "created_at": {
           "date": "2016-12-23 20: 01: 34.000000",
           "timezone_type": 3,
           "timezone": "UTC"
        },
        "height": 180,
        "weight": 87.88,
        "location": {
            "data": {
                "object": "Location",
                "id": "oe6k3mzoq0j75lgajgvrp4ayenbdx9mk",
                "country_id": "oe6k3mzoq0j75lgajgvrp4ayenbdx9mk",
                "region_id": "ehfsmzoq0j75lgajgvrp4ayenbdx9mk",
                "town_id": "lwo83mzoq0j75lgajgvrp4ayenbdx9mk",
                "postal_code_id": "poq82mzoq0j75lgajgvrp4ayenbdx9mk",
                "postal_code": "46010",
                "via_id": "pnn34mzoq0j75lgajgvrp4ayenbdx9mk",
                "address": "Castellana",
                "number": "12",
                "doorway": null,
                "floor": "5",
                "door_number": "A",
                "extra": null,
                "full_address": "Paseo de la Castellana 150, 1C, 28046, Madrid, España",
                "latitude": "40.427742",
                "longitude": "-3.689237",
                "created_at": {
                    "date": "2017-04-09 12:02:46.000000",
                    "timezone_type": 3,
                    "timezone": "Europe/Madrid"
                },
                "updated_at": {
                    "date": "2017-06-26 21:00:02.000000",
                    "timezone_type": 3,
                    "timezone": "Europe/Madrid"
                },
                "real_id": 3,
                "deleted_at": null
            }
        },
        "phones": [
            {
                "object": "Phone",
                "id": "oe6k3mzoq0j75lgajgvrp4ayenbdx9mk",
                "country_id": "oe6k3mzoq0j75lgajgvrp4ayenbdx9mk",
                "number": "666559988",
                "tag": "es",
                "is_main": 1,
                "created_at": {
                    "date": "2017-04-09 12:02:46.000000",
                    "timezone_type": 3,
                    "timezone": "Europe/Madrid"
                },
                "updated_at": {
                    "date": "2017-06-26 21:00:02.000000",
                    "timezone_type": 3,
                    "timezone": "Europe/Madrid"
                },
                "real_id": 3,
                "deleted_at": null
            },
            {
               "object": "Phone",
               "id": "oe6k3mzoq0j75lgajgvrp4ayenbdx9mk",
               "country_id": "oe6k3mzoq0j75lgajgvrp4ayenbdx9mk",
               "number": "666559988",
               "tag": "es",
               "is_main": 1,
               "created_at": {
                   "date": "2017-04-09 12:02:46.000000",
                   "timezone_type": 3,
                   "timezone": "Europe/Madrid"
               },
               "updated_at": {
                   "date": "2017-06-26 21:00:02.000000",
                   "timezone_type": 3,
                   "timezone": "Europe/Madrid"
               },
               "real_id": 3,
               "deleted_at": null
            }
        ],
        "emails": [
            {
                "object": "Email",
                "id": "oe6k3mzoq0j75lgajgvrp4ayenbdx9mk",
                "email": "paco@perez.es",
                "tag": "Personal",
                "is_main": 1,
                "created_at": {
                    "date": "2017-04-09 12:02:46.000000",
                    "timezone_type": 3,
                    "timezone": "Europe/Madrid"
                },
                "updated_at": {
                    "date": "2017-06-26 21:00:02.000000",
                    "timezone_type": 3,
                    "timezone": "Europe/Madrid"
                },
                "real_id": 3,
                "deleted_at": null
            },
            {
                "object": "Email",
                "id": "oe6k3mzoq0j75lgajgvrp4ayenbdx9mk",
                "email": "paco@perez.es",
                "tag": "Personal",
                "is_main": 1,
                "created_at": {
                    "date": "2017-04-09 12:02:46.000000",
                    "timezone_type": 3,
                    "timezone": "Europe/Madrid"
                },
                "updated_at": {
                    "date": "2017-06-26 21:00:02.000000",
                    "timezone_type": 3,
                    "timezone": "Europe/Madrid"
                },
                "real_id": 3,
                "deleted_at": null
            }
        ]
    }
}

Creación

https://developers.gadaca.com/#api-Users-UserPost

En este punto y para algunas integraciones, puede ser de especial interés el objeto insurers_data que contiene un array de: insurer_id(identificador aseguradora) e insured_id(número de póliza del usuario para esa aseguradora).

El servicio de creación de usuarios está bien documentado en la API pero cabe reseñar un error común de validación que puede ocurrir que es que el documento del usuario (y por lo tanto el propio usuario), ya exista en el sistema. En este caso, se puede utilizar el servicio de recuperar el usuario por su documento y utilizar el id de dicho usuario para añadirlo al dominio del cliente.

Retorna un objeto completo de tipo usuario.

Recuperar

https://developers.gadaca.com/#api-Users-UserGet

Obtener información del usuario por su ID.

Retorna un objeto completo de tipo usuario.

En esta solicitud, hay varios includes o relaciones que se pueden solicitar, utilizando el parámetro "include" en la petición y se incluirán introduciendo un campo con el nombre del include a la respuesta indicada anteriormente, siendo de especial interés:

Recuperar por documento

https://developers.gadaca.com/#api-Users-UserGetByDocNum

Obtener información del usuario por su documento de identidad.

Retorna un objeto completo de tipo usuario.

Se podrán obtener los mismos includes descritos anteriormente.

Añadir usuario al dominio

https://developers.gadaca.com/#api-Users-UserDomainListPost

Añade un usuario existente al dominio indicado. El id del dominio se puede obtener con el servicio de recuperación de información del dominio que se explicará a continuación.

  1. Dominio (Domain)

Un dominio en el cloud de Gadaca es un contenedor privado de recursos (servicios, asistencias, información médica de usuarios, etc…). En el caso de usuarios ya existentes en el sistema en otros dominios (se encuentran por documento de identidad), se podrán integrar en su dominio propio, pero sus datos (nombre, apellidos, etc…) no podrán ser modificados.

Un cliente de la API está vinculado a un dominio, que es para el que obtiene acceso al autenticarse.

Los dominios se organizan en una estructura jerárquica de árbol, de manera que se puedan gestionar los datos de varios dominios desde otro dominio con una jerarquía superior.

En el objeto Domain destacan los siguientes atributos:

  • id: Identificador de dominio
  • name: Nombre del dominio
  • common_name: Nombre común del dominio
  • abbreviated_name: Nombre abreviado del dominio (Hasta 11 caracteres)

Retorna un objeto completo de tipo usuario.

Recuperar dominio actual del usuario

https://developers.gadaca.com/#api-Domains-DomainCurrentGet

Obtener información del dominio del cliente autenticado.

Respuesta:

HTTP/1.1 200 OK
{
   "data": {
        "object": "Domain",
        "id": "xopxon45qlekj78m9gzy0avdbr96m37n",
        //Insert Parameters
        "created_at": {
            "date": "2017-04-09 12:02:46.000000",
            "timezone_type": 3,
            "timezone": "Europe/Madrid"
        },
        "updated_at": {
            "date": "2017-06-26 21:00:02.000000",
            "timezone_type": 3,
            "timezone": "Europe/Madrid"
        }
    }
}

Añadir aseguradora al usuario

Este apartado será únicamente para las integraciones con aseguradoras que quieran asociar us pólizas a los usuarios de homedoctor. El parámetro "insurer_id" utilizado para este endpoint, será proporcionado por homedoctor con el resto de documentación a entregar para la integración.

https://developers.gadaca.com/#api-Insurers-InsuredPost

Respuesta:

HTTP/1.1 200 OK
{
   "data": {
        "object": "Insured",
        "id": "xopxon45qlekj78m9gzy0avdbr96m37n",
        "distributor_name": "Gadaca Distribuidora de Seguros",
        "insured_id": "45010601020-B234",
        "insurer_id": "xopxon45qlekj78m9gzy0avdbr96m37n",
        "is_verified": 1,
        "renewal_at_day": 15,
        "renewal_at_month": 1,
        "user_id": "xopxon45qlekj78m9gzy0avdbr96m37n",
        "created_at": {
            "date": "2017-04-09 12:02:46.000000",
            "timezone_type": 3,
            "timezone": "Europe/Madrid"
        },
        "updated_at": {
            "date": "2017-06-26 21:00:02.000000",
            "timezone_type": 3,
            "timezone": "Europe/Madrid"
        }
    }
}

Recuperar listado de asegurados

https://developers.gadaca.com/#api-Insurers-InsuredListGet

Los parámetros que principalmente se usarán en las integraciones son:

  • insured_id: número de póliza
  • insurer_id: identificador de la aseguradora
  • user_id: el id de usuario de homedoctor

Respuesta:

HTTP/1.1 200 OK
{
   "data": [
        {
            "object": "Insured",
            "id": "xopxon45qlekj78m9gzy0avdbr96m37n",
            "distributor_name": "Gadaca Distribuidora de Seguros",
            "insured_id": "45010601020-B234",
            "insurer_id": "xopxon45qlekj78m9gzy0avdbr96m37n",
            "is_verified": 1,
            "renewal_at_day": 15,
            "renewal_at_month": 1,
            "user_id": "xopxon45qlekj78m9gzy0avdbr96m37n",
            "created_at": {
                "date": "2017-04-09 12:02:46.000000",
                "timezone_type": 3,
                "timezone": "Europe/Madrid"
            },
            "updated_at": {
                "date": "2017-06-26 21:00:02.000000",
                "timezone_type": 3,
                "timezone": "Europe/Madrid"
            }
        },
        {
            "object": "Insured",
            "id": "xopxon45qlekj78m9gzy0avdbr96m37n",
            "distributor_name": "Gadaca Distribuidora de Seguros",
            "insured_id": "45010601020-B234",
            "insurer_id": "xopxon45qlekj78m9gzy0avdbr96m37n",
            "is_verified": 1,
            "renewal_at_day": null,
            "renewal_at_month": 1,
            "user_id": "xopxon45qlekj78m9gzy0avdbr96m37n",
            "created_at": {
                "date": "2017-04-09 12:02:46.000000",
                "timezone_type": 3,
                "timezone": "Europe/Madrid"
            },
            "updated_at": {
                "date": "2017-06-26 21:00:02.000000",
                "timezone_type": 3,
                "timezone": "Europe/Madrid"
            }
        }
    ],
    "meta": {
        "pagination": {
            "total": 2,
            "count": 2,
            "per_page": 20,
            "current_page": 1,
            "total_pages": 1,
            "links": []
        }
    }
}