Ten en cuenta que la URL principal es https://einatecapi.einatime.com
1. Autentificación
Obtener el token con una validez de 365 días.
POST
Ejemplo:
{
“Email”: “app@einatec.com”,
“Password” : “passEinatime”
}
Parámetro
| Campo | Tipo | Descripción |
|---|---|---|
| String | Correo para acceder a Einatime | |
| Password | String | Contraseña para acceder a Einatime |
Si los datos son correctos nos tiene que generar el token para tener acceso a la api.
Ejemplo Success :
HTTP/1.1 200 OK
Ejemplo Error:
HTTP/1.1 401 Unauthorized
{
“message”: “Usuario o contraseña incorrecto”,
“status”: “401”
}
2. Funciones
Para cualquiera de las otras funcionalidades para obtener datos o introducirlos, se necesita el token enviando en el header con la key [Authorization] y en value el valor de [bearer + token]
Header
| Campo | Tipo | Descripción |
|---|---|---|
| authorization | String | Token válido obtenido en la función “token” |
Si ponemos en el header un token incorrecto
Ejemplo Error:
HTTP/1.1 401 Unauthorized
{
}
2.1 Ausencias
2.1.1 Ausencias de los empleados de la empresa
Obtendremos todas las ausencias de todos los empleados desde la fecha inicial a la fecha final. Se puede obtener estos datos si el usuario autentificado tiene el Rol Director/a, Gerente/a y Admin Empresa.
Ejemplo:
Parámetro
| Campo | Tipo | Descripción |
|---|---|---|
| InicioAusencia | String | Fecha de inicio del que obtendremos la informacion. Formato: “YYYY-MM-DD” |
| FinalAusencia | String | Fecha de final del que obtendremos la informacion. Formato: “YYYY-MM-DD” |
Ejemplo Success:
HTTP/1.1 200 OK
[
{
“fechaFin”: “2021-01-06 00:00:00”,
“id_TipoAusencia”: 1,
}, {…
]
Ejemplo (Ponemos una fecha inválida) Error:
HTTP/1.1 500 Internal Server Error
2.1.2 Ausencias del empleado
Obtendremos todas las ausencias del empleado autentificado desde la fecha inicial a la fecha final introducida.
Ejemplo:
Parámetro
| Campo | Tipo | Descripción |
|---|---|---|
| InicioAusencia | String | Fecha de inicio del que obtendremos la informacion. Formato: “YYYY-MM-DD” |
| FinalAusencia | String | Fecha de final del que obtendremos la informacion. Formato: “YYYY-MM-DD” |
Ejemplo Success:
HTTP/1.1 200 OK
[
{
“fechaFin”: “2021-01-06 00:00:00”,
“id_Empleado”: 475,
“id_TipoAusencia”: 1,
}, {…
]
Ejemplo (Ponemos una fecha inválida) Error:
HTTP/1.1 500 Internal Server Error
2.1.3 Ausencias de otro empleado
Obtendremos todas las ausencias del empleado introducido desde la fecha inicial a la fecha final introducida.
Ejemplo:
Parámetro
| Campo | Tipo | Descripción |
|---|---|---|
| InicioAusencia | String | Fecha de inicio del que obtendremos la informacion. Formato: “YYYY-MM-DD” |
| FinalAusencia | String | Fecha de final del que obtendremos la informacion. Formato: “YYYY-MM-DD” |
| id_Empleado | int | Numero de identificación del empleado a del que queremos las ausencias. |
Ejemplo Success:
HTTP/1.1 200 OK
[
{
“fechaFin”: “2021-01-06 00:00:00”,
“id_Empleado”: 475,
“id_TipoAusencia”: 1,
}, {…
]
Ejemplo (Ponemos una fecha inválida) Error:
HTTP/1.1 500 Internal Server Error
Ejemplo (Usamos un token no autorizado) Error:
HTTP/1.1 403 Forbidden
{
message: ‘No esta authorizado para ver las ausencias del empleado: 124’,
status: 403
}
Ejemplo (Usamos un token inválido) Error:
HTTP/1.1 401 Unauthorized
{
}
2.3 Empleados
Obtendremos todos los empleados de la empresa. Solo para los roles superior o igual al Head.
Parámetro
No es necesario ningun parámetro.
Ejemplo Success:
HTTP/1.1 200 OK
[
{
“idBiostar”: 6,
“id_Empresa”: 1,
“empresa”: “EINATEC”,
“id_Rol”: 2,
“rol”: “Empleado/a”,
“id_CentroDeTrabajo”: 1,
“centroDeTrabajo”: “Einatec Badalona”,
“id_Departamento”: 2,
“departamento”: “Desarrollo”,
“nombre”: “App”,
“apellidos”: “Einatec”,
“dni”: null,
“telefono”: “123456789”,
“email”: “app@einatec.com”,
“codigo”: “2”,
}, {…
]
Ejemplo (Ponemos un token que no existe) Error:
HTTP/1.1 401 Unauthorized
{
message: ‘Unauthorized’
}
Ejemplo (Ponemos un token sin autorización) Error:
HTTP/1.1 403 Forbidden
{
message: ‘No esta authorizado para listar los empleados’,
status: 403
}
2.4 Departamentos
Obtendremos todos los departamentos de la empresa
Parámetro
No es necesario ningun parámetro.
Ejemplo Success:
HTTP/1.1 200 OK
[
{
“empresa”: “Einatec Consulting”,
“id_Departamento”: 2,
“departamento”: “Desarrollo”,
“descripcion”: “Empleados del departamento de desarrollo”,
}, {…
]
Ejemplo Error:
HTTP/1.1 400 Bad Request
“No se ha podido devolver los datos solicitados.”
2.5 Centros
Obtendremos todos los centros de trabajo de la empresa
Parámetro
No es necesario ningun parámetro.
Ejemplo Success:
HTTP/1.1 200 OK
[
{
“centroDeTrabajo”: “Centro einatec”,
“id_Empresa”: 1,
“empresa”: “Einatec Consulting”,
“id_Poblacion”: 4,
“poblacion”: “Badalona”,
“poblacionFestivos”: “Badalona”,
“telefono”: “123456789”,
“direccion”: “Calle asturies 16”,
}, {…
]
Ejemplo Error:
HTTP/1.1 400 Bad Request
“No se ha podido devolver los datos solicitados.”
2.6 Eventos
Obtendremos todos los eventos que tiene la empresa para realizar los fichajes (Entrada, Salida,..).
Parámetro
No es necesario ningun parámetro.
Ejemplo Success:
HTTP/1.1 200 OK
[
{
“evento”: “Entrada”,
}, {…
]
Ejemplo Error:
HTTP/1.1 400 Bad Request
“No se ha podido devolver los datos solicitados.”
2.7 Proyectos
Obtendremos todos los proyectos de la empresa.
Parámetro
No es necesario ningun parámetro.
Ejemplo Success:
HTTP/1.1 200 OK
[
{
“proyecto”: “Proyecto inicial”,
“id_Empresa”: 1,
“empresa”: “Einatec Consulting”,
“numeroProyecto”: “1.0.1.2”,
“descripcion”: “Proyecto para realizar reformas de pruebas”,
}, {…
]
Ejemplo Error:
HTTP/1.1 400 Bad Request
“No se ha podido devolver los datos solicitados.”
2.8 Fichaje
Podremos realizar un fichaje para el empleado logado, el ID del empleado lo consigue con el token, no hace falta ponerlo en el body.
Ejemplo:
https://einatecapi.einatime.com/api/fichaje_login
{
“Fecha”: “21-04-2021 13:05:28”,
“id_TipoBiostarEvento” : 1,
“id_TipoEstado” : 1,
“Observacion” : “Prueba fichaje”
}
Body de la request
| Campo | Tipo | Descripción |
|---|---|---|
| Fecha | string | Fecha del fichaje en formato “dd/mm/aaaa hh:mm:ss” |
| id_TipoBiostarEvento | int | Se tiene que enviar el id del tipo de fichaje que se esta realizadon, varia según la empresa. |
| id_CentroDeTrabajo | int | (opcional) Se pueden indicar el dentro de trabajo desde donde se esta fichando, solo para empresas con gestion de turnos |
| Geolocalizacion | String | (opcional) Se pueden enviar las coordenaas para guardar la posición del fichaje, el formatio tiene que ser [latitud;longitud] |
| id_Proyecto | int | (opcional) Cuando el tipo de fichaje es de proyecto, se tiene que enviar el id del proyecto |
| Km | double | (opcional) Cuando el tipo de fichaje es de proyecto, se tiene que enviar los km |
| Dieta | double | (opcional) Cuando el tipo de fichaje es de proyecto, se tiene que enviar la dieta |
| Observacion | String | (opcional) Comentario del fichaje. |
| isMovil | bool | (opcional) Para saber si se ha realizado el fichaje desde una app móvil o desde otro dispositivo, si no se introduce se marcara como falso |
Ejemplo Success:
HTTP/1.1 200 OK
{
message: ‘Se ha registrado el fichaje correctamente’,
status: 200
}
Ejemplo Error:
HTTP/1.1 400 Bad Request
“Ha habido algun problema al registrar el fichaje.”
Ejemplo Error: El centro introducido no es posible para este empleado
HTTP/1.1 404 Not found
“El centro de trabajo no es valido o no corresponde a tu empresa”
Ejemplo Error: El proyecto introducido no es posible para este empleado
HTTP/1.1 404 Not found
“El proyecto no existe o no corresponde a tu empresa.”
2.9 Fichaje para otro empleado
El usuario logueado puede realizar un fichaje para otro empleado. Esta funcion solo es valida para los roles superiores o igual a Head.
Ejemplo:
https://einatecapi.einatime.com/api/fichaje
{
“Fecha”: “21-04-2021 13:05:28”,
“id_Empleado” : 2,
“id_TipoBiostarEvento” : 1,
“id_TipoEstado” : 1,
}
Parámetro
| Campo | Tipo | Descripción |
|---|---|---|
| Fecha | string | Fecha del fichaje en formato “dd/mm/aaaa hh:mm:ss” |
| id_Empleado | int | (opcional) Se tiene que poner el id de empleado que se puede obtener del listado de empleados o si no se introduce nada el fichaje se realizara a la persona que se ha logueado. |
| id_TipoBiostarEvento | int | Se tiene que enviar el id del tipo de evento. |
| id_CentroDeTrabajo | int | (opcional) Se pueden indicar el dentro de trabajo desde donde se esta fichando, solo para empresas con gestion de turnos |
| Geolocalizacion | String | (opcional) Se pueden enviar las coordenaas para guardar la posición del fichaje, el formatio tiene que ser [latitud;longitud] |
| id_Proyecto | int | (opcional) Cuando el tipo de fichaje es de proyecto, se tiene que enviar el id del proyecto |
| Km | double | (opcional) Cuando el tipo de fichaje es de proyecto, se tiene que enviar los km |
| Dieta | double | (opcional) Cuando el tipo de fichaje es de proyecto, se tiene que enviar la dieta |
| Observacion | String | (opcional) Comentario del fichaje. |
| isMovil | bool | (opcional) Para saber si se ha realizado el fichaje desde una app móvil o desde otro dispositivo, si no se introduce se marcara como falso |
Ejemplo Success:
HTTP/1.1 200 OK
{
message: ‘Se ha registrado el fichaje correctamente’,
status: 200
}
Ejemplo Error:
HTTP/1.1 400 Bad Request
“Ha habido algun problema al registrar el fichaje.”
Ejemplo Error:
HTTP/1.1 401 Unauthorized
{
message: ‘Unauthorized’
}
Ejemplo Error: El token enviado no tiene autorización
HTTP/1.1 403 Forbidden
{
message: ‘No esta autorizado para realizar este fichaje’,
status: 403
}
Ejemplo Error: El empleado introducido no es de una de tus empresas autorizadas
HTTP/1.1 404 Not found
{
message: ‘El empleado que intentas fichar no corresponde a tu empresa’,
status: 404
}
Ejemplo Error: El evento introducido no es de una de tus empresas autorizadas
HTTP/1.1 404 Not found
{
message: ‘El evento introducido no existe o no es correcto para tu empresa’,
status: 404
}
Ejemplo Error: El proyecto introducido no es posible para este empleado
HTTP/1.1 404 Not found
{
message: ‘El proyecto no existe o no corresponde a tu empresa’,
status: 404
}
2.10 Fichajes del empleado
Obtendremos todos los fichajes del empleado desde la fecha inicial a la fecha final introducida.
Ejemplo:
Parámetro
| Campo | Tipo | Descripción |
|---|---|---|
| InicioFichaje | String | Fecha de inicio del que obtendremos la informacion. Formato: “YYYY-MM-DD” |
| FinalFichaje | String | Fecha de final del que obtendremos la informacion. Formato: “YYYY-MM-DD” |
Ejemplo Success:
HTTP/1.1 200 OK
[
{
“dieta”: “0”,
“id_Empleado”: 475,
“id_TipoBiostarEvento”: 1230,
}, {…
]
Ejemplo (Ponemos un token inválido) Error:
HTTP/1.1 401 Unauthorized
{
message: ‘Unauthorized’
}
Ejemplo Error:
HTTP/1.1 500 Internal Server Error
2.11 Fichajes de otro empleado
Obtendremos todos los fichajes del empleado introducido desde la fecha inicial a la fecha final introducida.
Ejemplo:
Parámetro
| Campo | Tipo | Descripción |
|---|---|---|
| InicioFichaje | String | Fecha de inicio del que obtendremos la informacion. Formato: “YYYY-MM-DD” |
| FinalFichaje | String | Fecha de final del que obtendremos la informacion. Formato: “YYYY-MM-DD” |
| id_Empleado | int | Numero de identificación del empleado a del que queremos los fichajes. |
Ejemplo Success:
HTTP/1.1 200 OK
[
{
“dieta”: “0”,
“id_Empleado”: 475,
“id_TipoBiostarEvento”: 1230,
}, {…
]
Ejemplo (Ponemos un token inválido) Error:
HTTP/1.1 401 Unauthorized
{
message: ‘Unauthorized’
}
Ejemplo (Ponemos un token sin autorizacion) Error:
HTTP/1.1 403 Forbidden
{
message: ‘No esta authorizado para ver los fichajes del empleado: 475’,
status: 403
}
Ejemplo (Ponemos un id de empleado incorrecto) Error:
HTTP/1.1 404 NotFound
{
message: ‘No se ha encontrado el empleado 123456’,
status: 404
}
Ejemplo Success:
HTTP/1.1 200 OK
{
message: ‘No hay fichajes para estas fechas’,
status: 200
}
Ejemplo Error:
HTTP/1.1 500 Internal Server Error
2.12 Tipo Ausencias
Obtendremos todos los tipos de ausencia de la empresa. El Rol Empleado puede crear una ausencia para si mismo, para ello el id_Empleado dentro de los parámetros no debe especificar nada o valor 0. Para crear una ausencia para un empleado se debe indicar el id_Empleado.
Parámetro
No es necesario ningún parámetro.
Ejemplo Success:
HTTP/1.1 200 OK
[
{
“id_Color”: 70,
“id_Empresa”: 1,
“nombre”: “Vacaciones”,
“isComputable”: false,
“isCompensable”: false,
“isActive”: true,
}, {…
]
Ejemplo Error:
HTTP/1.1 400 Bad Request
“No se ha podido devolver los datos solicitados.”
2.13 Crear ausencia
Para crear una ausencia. Rol empleado puede solicitar una ausencia, no es necesario indicar el id_Empleado. Para roles Superiores se debe indicar el id_Empleado para crear una ausencia a un usuario distinto al autentificado
Ejemplo:
https://einatecapi.einatime.com/api/ausencias
{
“FechaIni”: “21-04-2021”,
“id_Empleado” : 2,
“id_TipoAusencia” : 1,
“id_TipoFormaAusencia” : 2,
“ObsAus” : “Prueba ausencia”
}
Parámetro
| Campo | Tipo | Descripción |
|---|---|---|
| id_Empleado | int | Se tiene que poner el id de empleado que se puede obtener del listado de empleados. |
| FechaIni | string | Fecha de inicio de la ausencia en formato “dd/mm/aaaa” |
| id_TipoAusencia | int | Se tiene que enviar el id del tipo de ausencia. |
| id_TipoFormaAusencia | int | Varia en 1:”Varios dias”, 2:”Un dia”, 3:”Horas”, según la duración de la ausencia. Si seleccionamos varios dias, FechaFin es obligatoria. |
| FechaFin | string | (opcional) Fecha de final de la ausencia en formato “dd/mm/aaaa”. Solo es obligatoria cuando ponemos un 1 en id_TipoFormaAusencia |
| HoraIni | string | (opcional) Hora de inicio de la ausencia en formato hh:mm:ss. Solo es obligatoria cuando ponemos un 3 en id_TipoFormaAusencia |
| HoraFin | string | (opcional) Hora de final de la ausencia en formato hh:mm:ss. Solo es obligatoria cuando ponemos un 3 en id_TipoFormaAusencia |
| Archivo | file | (opcional) Archivo adjunto a la ausencia. Extensiones aceptadas: .doc, .xls, .pdf, .docx, .xlsx, .jpg, .jpeg, .gif, .bmp, .png. Tamaño hasta 2MB. |
| ObsAus | String | (opcional) Se pueden enviar alguna observación para la ausencia. Sin limite de caracteres |
Ejemplo Success:
HTTP/1.1 200 OK
{
message: ‘Se ha solicitado correctamente la ausencia’,
status: 200
}
Ejemplo Error:
HTTP/1.1 400 Bad Request
“Ha habido algun problema al registrar la ausencia.”
Ejemplo Error: Se envia un token no autorizado
HTTP/1.1 403 Forbidden
{
message: ‘No esta autorizado para añadir una ausencia’,
status: 403
}
Ejemplo Error: Pones una fecha de hace mas de dos años
HTTP/1.1 409 Conflict
{
message: ‘No puedes pedir ausencia a una fecha anterior a dos años’,
status: 409
}
Ejemplo Error: Pones una fecha donde ya hay una ausencia
HTTP/1.1 409 Conflict
{
message: ‘Ya hay una ausencia aceptada para esa fecha’,
status: 409
}