Representa a las cuentas de usuario. Una cuenta de usuario se utiliza para registrarse, iniciar sesión e identificarse en el API.
{
"id" : "long",
"email" : "string|email",
"type" : "integer",
"status" : "integer",
"created_at": "date",
"updated_at": "date"
}
type=0
: Account de tipo Client.type=15
: Account de tipo Provider.type=48
: Account de tipo Seller-Admin.type=112
: Account de tipo Low-Admin.type=119
: Account de tipo High-Admin.type=127
: Account de tipo Owner-Admin.type=255
: Account de tipo Super-Admin.status=0
: Account de estado pre registrado.status=16
: Account de estado desactivado.status=20
: Account de estado bloqueado.status=32
: Account de estado sin verificar.status=127
: Account de estado sin confirmar.status=240
: Account de estado activo.En el API se manejan 3 tipos de cuenta: Client, Provider y Admin, que representan a un Comprador/Cliente, un Rider y a un Administrador respectivamente.
Cuando una cuenta es de tipo Admin, se manejan 3 tipos de niveles de acceso vinculados a la cuenta.
branch_group_id
y branch_id
son null
. Puede gestionar cualquier BranchGroup y
cualquier Branch.branch_group_id
posee un valor numérico indicando el grupo al cual pertenece
y el atributo branch_id
es null
. No puede gestionar la Company, pero puede gestionar el
BranchGroup al cual pertenece incluyendo los Branches dentro de ese BranchGroup.branch_group_id
posee un valor numérico del grupo al cual pertenece y branch_id
posee un valor numérico del Branch al gual pertenece. No puede gestionar la Company ni el
BranchGroup al cual pertenece, pudiendo sólo gestionar el Branch asociado.Una cuenta de tipo Client es el tipo de cuenta que se utiliza para realizar compras en la
aplicación. Se identifica con type == 0
.
Una cuenta de tipo Provider es el tipo de cuenta que se utiliza para realizar entregas de los
productos solicitados por los Clients, o bien, prestar un servicio a un Client.
Se identifica con type == 15
.
Una cuenta de tipo Admin es el tipo de cuenta que se utiliza para gestionar y configurar los
productos y servicios que presta una determinada Company. Existen distintos tipos de Admin.
Los Admin en general se identifican con type >= 112
.
type == 48
type == 112
type == 119
.type == 127
.type == 255
.Estado de Account. En el API se manejan los siguientes estados de Account:
status == 0
.status == 16
.status == 20
:status == 32
.email
asociado al Account no ha sido
confirmado. Se pueden utilizar la mayoría de servicios en DonDemand, pero no se pueden crear
Orders hasta confirmar sus datos. Se identifica con status == 127
. status == 240
.Cada tipo de cuenta en DonDemand (Client, Provider, Admin) tiene sus particularidades a la hora de registrarse.
El registro de Client es libre para cualquier usuario. Es decir, no existen restricciones para registrarse. Ir a Registro de Client.
El registro de Provider es realizado a través de un Account de tipo High Admin o superior. Ir a Registro de Provider.
El registro de Admin es realizado a través de un Account de tipo High Admin o superior. No obstante, un Admin sólo puede registrar un tipo de Admin inferior al suyo propio, lo cual se describe en la siguiente tabla, donde se define el tipo de cuenta que puede crear cada tipo de Admin:
Account | Low Admin | High Admin | Owner Admin | Super Admin |
---|---|---|---|---|
Low Admin | No | No | No | No |
High Admin | Sí | No | No | No |
Owner Admin | Sí | Sí | No | No |
Super Admin | Sí | Sí | Sí | Sí |
Ir a Registro de Admin.
Verifica las credenciales de usuario y genera un
Token de Acceso. De forma opcional, se puede enviar la
posición actual (latitude, longitude) para actualizar la ubicación actual del usuario en el
servidor, o enviar el push_token
para recibir notificaciones push.
Método | URI | Cabeceras |
---|---|---|
POST | /companies/{companyId}/login-facebook |
N/A |
POST | /companies/{companyId}/login-native |
N/A |
{
"type" : "required|string|in:admin,provider,client",
"email" : "required|email",
"password" : "required|string|min:5",
"latitude_e6" : "integer",
"longitude_e6": "integer",
"push_token" : "string|max:255"
}
{info}
type
es el tipo de usuario entreadmin
,provider
oclient
.push_token
es el token que el API necesita para enviar las notificaciones push.
{warning} La respuesta corresponde al modelo que inició sesión, ya sea Client, Provider o Admin.
{success} Respuesta satisfactoria de un Admin
Código 200
Admin
Client
Provider
{
"id" : 5,
"name" : "Pedro Parra",
"display_name": "Pedro Parra",
"email" : "edyjen2@hotmail.com",
"phone" : "12315200066",
"avatar_url" : "https://dondemand.sfo2.digitaloceanspaces.com/companies/46/avatar/avatar_8_1554999424.png",
"status" : 1,
"created_at" : "2019-02-14 14:07:57",
"updated_at" : "2019-08-26 20:53:31",
"deleted_at" : null,
"account_id" : 8,
"settings" : {
"enable_sms" : true,
"enable_order_created_sms" : true,
"enable_payment_registered_sms" : true,
"enable_manual_payment_reported_sms": true,
"enable_order_canceled_sms" : true,
"enable_support_sms" : true
},
"account" : {
"id" : 8,
"email" : "edyjen2@hotmail.com",
"type" : 119,
"status" : 240,
"created_at": "2019-02-14 14:07:57",
"updated_at": "2019-08-26 20:53:27",
"deleted_at": null
},
"access_token": {
"token_type" : "bearer",
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjgsImlzcyI6Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9hcGkvdjMvY29tcGFuaWVzLzMvbG9naW4tbmF0aXZlIiwiaWF0IjoxNTgzODY1Njg0LCJleHAiOjE1ODM4NjkyODQsIm5iZiI6MTU4Mzg2NTY4NCwianRpIjoiN3N5WjRkRDJSNjVUYnlmUCJ9.imtW9g0FV0SDgVthyQY-jT_ZGi6vSXqFIeD7dO9ziqk",
"created_at" : "2020-03-10 18:41:24",
"expires_at" : "2020-03-10 19:41:24",
"expires_in" : 3600
},
"registered" : false
}
{danger} Respuesta de error
Motivo Combinación de email/contraseña incorrectos, o usuario no existe.
{
"status_code": 401,
"error_code": "EB100",
"message": "invalid_credentials",
"description": "No account matches the specified credentials",
}
Código 423
Motivo Demasiados intentos fallidos en un corto período de tiempo.
{
"message": "too_many_attempts {seconds}"
}
Envía un código al número de teléfono del usuario (verificado) y se utiliza este código para iniciar sesión (como una contraseña temporal).
Método | URI | Cabeceras |
---|---|---|
POST | /companies/{companyId}/send-login-code |
N/A |
{
"phone" : "required|string"
}
El usuario debe ingresar el código recibido por SMS en el app para iniciar sesión. Se utiliza el endpoint:
Método | URI | Cabeceras |
---|---|---|
POST | /companies/{companyId}/login-phone |
N/A |
{
"phone" : "required|string",
"code" : "required|string"
}