Einatime API

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

/api/token

Ejemplo:

https://einatecapi.einatime.com/api/token
{
“Email”: “app@einatec.com”,
“Password” : “passEinatime”
}

Parámetro

CampoTipoDescripción
EmailStringCorreo para acceder a Einatime
PasswordStringContraseñ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

{“token”:”eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImFwcEBlaW5hdGVj LmNvbSIsIm5iZiI6MTY0OTc3MDI0NiwiZXhwIjoxNjgxMzA2MjQ2LCJpYXQiOjE2 NDk3NzAyNDZ9.wSpvjDV5T67RVFmpsT_eFKc7KEI4X3WEUJwMWu0Dn8Y”}
 

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

CampoTipoDescripción
authorizationStringToken válido obtenido en la función “token”

Si ponemos en el header un token incorrecto

Ejemplo Error:

HTTP/1.1 401 Unauthorized

{

“message”: “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. 

GET
/api/ausencias/empresa/{InicioAusencia}/{FinalAusencia}

Ejemplo:

https://einatecapi.einatime.com/api/ausencias/2021-01-01/2021-01-31

Parámetro

CampoTipoDescripción
InicioAusenciaString

Fecha de inicio del que obtendremos la informacion.

Formato: “YYYY-MM-DD”

FinalAusenciaString

Fecha de final del que obtendremos la informacion.

Formato: “YYYY-MM-DD”

Ejemplo Success:

HTTP/1.1 200 OK

[

{

“fechaIni”: “2021-01-05 00:00:00”,
“fechaFin”: “2021-01-06 00:00:00”,
“horaIni”: null,
“horaFin”: null,
“id_TipoAusencia”: 1,
        “obsAus”: null,
        “archivo”: null

}, {…

]

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.

GET
/api/ausencias/{InicioAusencia}/{FinalAusencia}

Ejemplo:

https://einatecapi.einatime.com/api/ausencias/2021-01-01/2021-01-31

Parámetro

CampoTipoDescripción
InicioAusenciaString

Fecha de inicio del que obtendremos la informacion.

Formato: “YYYY-MM-DD”

FinalAusenciaString

Fecha de final del que obtendremos la informacion.

Formato: “YYYY-MM-DD”

Ejemplo Success:

HTTP/1.1 200 OK

[

{

“fechaIni”: “2021-01-05 00:00:00”,
“fechaFin”: “2021-01-06 00:00:00”,
“horaIni”: null,
“horaFin”: null,
“id_Empleado”: 475, 
“id_TipoAusencia”: 1,
        “obsAus”: null,
        “archivo”: null

}, {…

]

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.

GET
/api/ausencias/{InicioAusencia}/{FinalAusencia}/{id_Empleado}

Ejemplo:

https://einatecapi.einatime.com/api/ausencias/2021-01-01/2021-01-31/475

Parámetro

CampoTipoDescripción
InicioAusenciaString

Fecha de inicio del que obtendremos la informacion.

Formato: “YYYY-MM-DD”

FinalAusenciaString

Fecha de final del que obtendremos la informacion.

Formato: “YYYY-MM-DD”

id_EmpleadointNumero de identificación del empleado a del que queremos las ausencias.

Ejemplo Success:

HTTP/1.1 200 OK

[

{

“fechaIni”: “2021-01-05 00:00:00”,
“fechaFin”: “2021-01-06 00:00:00”,
“horaIni”: null,
“horaFin”: null,
“id_Empleado”: 475, 
“id_TipoAusencia”: 1,
        “obsAus”: null,
        “archivo”: null

}, {…

]

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

{

“message”: “Unauthorized”

}

 
2.3 Empleados

Obtendremos todos los empleados de la empresa. Solo para los roles superior o igual al Head.

GET
/api/empleados

Parámetro

No es necesario ningun parámetro.

Ejemplo Success:

HTTP/1.1 200 OK

[

{

“id_Empleado”: 475,
“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

GET
/api/departamentos

Parámetro

No es necesario ningun parámetro.

Ejemplo Success:

HTTP/1.1 200 OK

[

{

“id_Empresa”: 1,
“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

GET
/api/centros

Parámetro

No es necesario ningun parámetro.

Ejemplo Success:

HTTP/1.1 200 OK

[

{

“id_CentrosDeTrabajo”: 2,
“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,..).

GET
/api/eventos

Parámetro

No es necesario ningun parámetro.

Ejemplo Success:

HTTP/1.1 200 OK

[

{

“id_TipoBiostarEvento”: 1,
“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.

GET
/api/proyectos

Parámetro

No es necesario ningun parámetro.

Ejemplo Success:

HTTP/1.1 200 OK

[

{

“id_Proyecto”: 1,
“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.

POST
/api/fichaje_login

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

CampoTipoDescripción
FechastringFecha del fichaje en formato “dd/mm/aaaa hh:mm:ss”
id_TipoBiostarEventointSe tiene que enviar el id del tipo de fichaje que se esta realizadon, varia según la empresa.
id_CentroDeTrabajoint(opcional) Se pueden indicar el dentro de trabajo desde donde se esta fichando, solo para empresas con gestion de turnos
GeolocalizacionString(opcional) Se pueden enviar las coordenaas para guardar la posición del fichaje, el formatio tiene que ser [latitud;longitud]
id_Proyectoint(opcional) Cuando el tipo de fichaje es de proyecto, se tiene que enviar el id del proyecto
Kmdouble(opcional) Cuando el tipo de fichaje es de proyecto, se tiene que enviar los km
Dietadouble(opcional) Cuando el tipo de fichaje es de proyecto, se tiene que enviar la dieta
ObservacionString(opcional) Comentario del fichaje.
isMovilbool(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.

POST
/api/fichaje

Ejemplo:

https://einatecapi.einatime.com/api/fichaje
{

“Fecha”: “21-04-2021 13:05:28”,

“id_Empleado” : 2,

“id_TipoBiostarEvento” : 1,

“id_TipoEstado” : 1,

     “Observacion” : prueba fichaje,

}

Parámetro

CampoTipoDescripción
FechastringFecha del fichaje en formato “dd/mm/aaaa hh:mm:ss”
id_Empleadoint(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_TipoBiostarEventointSe tiene que enviar el id del tipo de evento.
id_CentroDeTrabajoint(opcional) Se pueden indicar el dentro de trabajo desde donde se esta fichando, solo para empresas con gestion de turnos
GeolocalizacionString(opcional) Se pueden enviar las coordenaas para guardar la posición del fichaje, el formatio tiene que ser [latitud;longitud]
id_Proyectoint(opcional) Cuando el tipo de fichaje es de proyecto, se tiene que enviar el id del proyecto
Kmdouble(opcional) Cuando el tipo de fichaje es de proyecto, se tiene que enviar los km
Dietadouble(opcional) Cuando el tipo de fichaje es de proyecto, se tiene que enviar la dieta
ObservacionString(opcional) Comentario del fichaje.
isMovilbool(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.

GET
/api/fichaje/{InicioFichajes}/{FinalFichajes}

Ejemplo:

https://einatecapi.einatime.com/api/fichaje/2020-05-01/2022-05-14

Parámetro

CampoTipoDescripción
InicioFichajeString

Fecha de inicio del que obtendremos la informacion.

Formato: “YYYY-MM-DD”

FinalFichajeString

Fecha de final del que obtendremos la informacion.

Formato: “YYYY-MM-DD”

Ejemplo Success:

HTTP/1.1 200 OK

[

{

“fecha”: “2021-01-05 00:00:00”,
“dieta”: “0”,
“id_CentroDeTrabajo”: 1,
“id_Proyecto”: 0,
“id_Empleado”: 475, 
“id_TipoEstado”: 2, 
“km”: 0, 
“id_TipoBiostarEvento”: 1230,
        “isMovil”: false,
        “geolocalizacion”: “41.469542399999995;2.2527999999999997”

}, {…

]

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.

GET
/api/fichaje/{InicioFichaje}/{FinalFichaje}/{id_Empleado}

Ejemplo:

https://einatecapi.einatime.com/api/fichaje/2021-01-01/2021-01-31/475

Parámetro

CampoTipoDescripción
InicioFichajeString

Fecha de inicio del que obtendremos la informacion.

Formato: “YYYY-MM-DD”

FinalFichajeString

Fecha de final del que obtendremos la informacion.

Formato: “YYYY-MM-DD”

id_EmpleadointNumero de identificación del empleado a del que queremos los fichajes.

Ejemplo Success:

HTTP/1.1 200 OK

[

{

“fecha”: “2021-01-05 00:00:00”,
“dieta”: “0”,
“id_CentroDeTrabajo”: 1,
“id_Proyecto”: 0,
“id_Empleado”: 475, 
“id_TipoEstado”: 2, 
“km”: 0, 
“id_TipoBiostarEvento”: 1230,
        “isMovil”: false,
        “geolocalizacion”: “41.469542399999995;2.2527999999999997”

}, {…

]

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. 

GET
/api/tipoausencias

Parámetro

No es necesario ningún parámetro. 

Ejemplo Success:

HTTP/1.1 200 OK

[

{

“id_TipoAusencia”: 1,
“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

POST
/api/ausencias

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

CampoTipoDescripción
id_EmpleadointSe tiene que poner el id de empleado que se puede obtener del listado de empleados. 
FechaInistringFecha de inicio de la ausencia en formato “dd/mm/aaaa”
id_TipoAusenciaintSe tiene que enviar el id del tipo de ausencia.
id_TipoFormaAusenciaintVaria en 1:”Varios dias”, 2:”Un dia”, 3:”Horas”, según la duración de la ausencia. Si seleccionamos varios dias, FechaFin es obligatoria.
FechaFinstring(opcional) Fecha de final de la ausencia en formato “dd/mm/aaaa”. Solo es obligatoria cuando ponemos un 1 en id_TipoFormaAusencia
HoraInistring(opcional) Hora de inicio de la ausencia en formato hh:mm:ss. Solo es obligatoria cuando ponemos un 3 en id_TipoFormaAusencia
HoraFinstring(opcional) Hora de final de la ausencia en formato hh:mm:ss. Solo es obligatoria cuando ponemos un 3 en id_TipoFormaAusencia
Archivofile(opcional) Archivo adjunto a la ausencia. Extensiones aceptadas: .doc, .xls, .pdf, .docx, .xlsx, .jpg, .jpeg, .gif, .bmp, .png. Tamaño hasta 2MB.
ObsAusString(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

}

¿Te ha ayudado?

[liker]