1- FUNCIONES
1.1- Conseguir token de acceso:
POST:https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=AIzaSyDxs6wolPauCavVnvRxSZ3KPpZOlb63Ijc&email=<emailUsuario>&password=<contraseñaUsuario>&returnSecureToken=true
Esta consulta envía tres datos importantes:
- Token de inicio de sesión.
- Email del usuario que accede.
- El id del usuario en curso.
En los datos del usuario se encuentra el campo id_cuenta.
GET:https://firestore.googleapis.com/v1/projects/copres-firebase/databases/(default)/documents/usuarios/<id_usuario>
Authorization: Token.
1.3- Listar Países
GET:https://us-central1-copres-firebase.cloudfunctions.net/metrokubikoAPI/paises
2- PROYECTOS
2.1- Proyectos
2.1.1 Listar
POST:https://firestore.googleapis.com/v1/projects/copres-firebase/databases/(default)/documents/cuentas/<id_cuenta>:runQuery
{
"structuredQuery": {
"from": [{ "collectionId": "proyectos" }],
"where": {
"fieldFilter": {
"field": { "fieldPath": "activo" },
"op": "EQUAL",
"value": { "booleanValue": true }
}
}
}
}
2.1.2 Crear
Los campos del ejemplo son requeridos.
Los campos válidos para la categoría son: Presupuesto, Fases, Fase.
Si el proyecto es una fase el id_proyecto seria el id del proyecto de fases que contenga la fase.
El país debe ser uno de la lista de países de metro kubiko.
PATCH:https://firestore.googleapis.com/v1/projects/copres-firebase/databases/(default)/documents/cuentas/<id_cuenta>/proyectos/<id_ejemplo>
Authorization: Token
Body: raw Json:
{
"fields": {
"categoria": { "stringValue": "Presupuesto" },
"ciudad": { "stringValue": "Ciudad" },
"usuario_creador": { "stringValue": "email@example.com" },
"id_user_crea": { "stringValue": "id usuario actual" },
"createdAt": { "timestampValue": "fecha actual" },
"activo": { "booleanValue": true },
"pais": { "stringValue": "Colombia" },
"id_proyecto": { "stringValue": "id_ejemplo" },
"updatedAt": { "timestampValue": "fecha actual" },
"estado": { "stringValue": "activo" },
"nombre": { "stringValue": "01 Prueba API de REST" }
}
}
2.1.3 Editar
Los campos createdAt, id_user_crea, usuario_creador, id_proyecto y categoria no se pueden modificar.
PATCH:https://firestore.googleapis.com/v1/projects/copres-firebase/databases/(default)/documents/cuentas/<id_cuenta>/proyectos/<id_ejemplo>
Authorization: Token
Body: raw Json:
{
"fields": {
"ciudad": { "stringValue": "Ciudad" },
"pais": { "stringValue": "Colombia" },
"moneda": { "stringValue": "Peso Colombiano" },
"updatedAt": { "timestampValue": "fecha actual" },
"nombre": { "stringValue": "01 Prueba API de REST Editado" }
}
}
2.2- Actividades
2.2.1- Listar Actividades
GET:https://us-central1-copres-firebase.cloudfunctions.net/actividadesProyecto?id_proyecto=<id_proyecto>&id_cuenta=<id_cuenta>
2.2.2- Crear Actividad
El campo categoría con valor actividad es requerido.
La respuesta es el id de la actividad
POST:https://us-central1-copres-firebase.cloudfunctions.net/metrokubikoAPI/cuentas/<id_cuenta>/proyectos/<id_proyecto>/actividades
El campo categoría no se puede editar.
POST:https://us-central1-copres-firebase.cloudfunctions.net/metrokubikoAPI/cuentas/<id_cuenta>/proyectos/<id_proyecto>/actividades/<id_actividad>
Body: raw Json:
{2.2.4- Borrar Actividad
DELETE:https://us-central1-copres-firebase.cloudfunctions.net/metrokubikoAPI/cuentas/<id_cuenta>/proyectos/<id_proyecto>/actividades/<id_actividad>
2.2.5- Listar Insumos de APU
El campo id_proyecto es el id del proyecto por fases, si se busca desde una fase, o el mismo id del documento del proyecto si es de Presupuesto.
GET:https://firestore.googleapis.com/v1/projects/copres-firebase/databases/(default)/documents/cuentas/<id_cuenta>proyectos/<id_proyecto>/actividades/<id_actividad>/apus
2.2.6- Crear insumo de APU
El campo id_proyecto es el id del proyecto por fases, si se busca desde una fase, o el mismo id del documento del proyecto si es de Presupuesto.
El id_insumo es el id del insumo del proyecto al que hará referencia el insumo de APU
POST:https://us-central1-copres-firebase.cloudfunctions.net/metrokubikoAPI/cuentas/<id_cuenta>proyectos/<id_proyecto>/actividades/<id_actividad>/apus/<id_insumo>
Body: raw Json:
{
"cantidad": 5,
"desperdicio": 0.1,
"rendimiento": 1
} 2.2.7- Editar insumo de APU
El campo id_proyecto es el id del proyecto por fases, si se busca desde una fase, o el mismo id del documento del proyecto si es de Presupuesto.
PATCH::https://us-central1-copres-firebase.cloudfunctions.net/metrokubikoAPI/cuentas/<id_cuenta>proyectos/<id_proyecto>/actividades/<id_actividad>/apus/<id_insumo>
Body: raw Json:
{ 2.2.8- Borrar Insumos de APU
DELETE:https://firestore.googleapis.com/v1/projects/copres-firebase/databases/(default)/documents/cuentas/<id_cuenta>proyectos/<id_proyecto>/actividades/<id_actividad>/apus/<id_insumo>
2.3- Insumos
2.3.1- Listar Insumos
Los insumos se buscan por proyecto de Fases o Presupuesto no por Fase.
GET:https://firestore.googleapis.com/v1/projects/copres-firebase/databases/(default)/documents/cuentas/<id_cuenta>proyectos/<id_proyecto>/insumos
2.3.2- Crear Insumos
El campo categoría con valor actividad es requerido.
POST:https://firestore.googleapis.com/v1/projects/copres-firebase/databases/(default)/documents/cuentas/<id_cuenta>proyectos/<id_proyecto>/insumos
Body: raw Json:
{
"fields": {
"categoria": {
"stringValue": "insumo"
},
"insumo": {
"stringValue": "Insumo"
},
"unidad": {
"stringValue": "m3"
},
"codigo": {
"stringValue": "codigo"
}
}
}
2.3.3- Editar Insumos
Los campos categoría y código no pueden ser editados.
PATCH:https://firestore.googleapis.com/v1/projects/copres-firebase/databases/(default)/documents/cuentas/<id_cuenta>proyectos/<id_proyecto>/insumos/<id_insumo>?updateMask.fieldPaths=insumo&updateMask.fieldPaths=unidad
Body: raw Json:
{
"fields": {
"insumo": {
"stringValue": "Insumo Editado"
},
"unidad": {
"stringValue": "m3"
}
}
}
2.3.3- Borrar Insumos
DELETE:https://firestore.googleapis.com/v1/projects/copresfirebase/databases/(default)/documents/cuentas/<id_cuenta>proyectos/<id_proyecto>/insumos/<id_insumo>
POST:https://firestore.googleapis.com/v1/projects/copres-firebase/databases/(default)/documents/cuentas/<id_cuenta>:runQuery
Authorization: Token
Body: raw Json:
{
"structuredQuery": {
"from": [{ "collectionId": "bases_apus" }],
"where": {
"fieldFilter": {
"field": { "fieldPath": "activo" },
"op": "EQUAL",
"value": { "booleanValue": true }
}
}
}
}
3.2- Listar Actividades
GET:https://firestore.googleapis.com/v1/projects/copres-firebase/databases/(default)/documents/cuentas/<id_cuenta>/bases_apus/<id_base>/actividades
GET:https://firestore.googleapis.com/v1/projects/copres-firebase/databases/(default)/documents/cuentas/<id_cuenta>/bases_apus/<id_base>/insumos