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.



1.2- Listar Datos Del Usuario
El id_usuario se consigue del paso 2.1 con el campo localId.

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


Authorization:  Token

Body: raw Json

{

     "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>


Authorization:  Token

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


Authorization:  Token

Body: raw Json:
{
"actividad": "actividad ejemplo",
"unidad": "m3",
"codigo": "ACT-10001",
"categoria": "actividad"
}

2.2.3- Editar Actividad

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>


Authorization:  Token


Body: raw Json:

{
"actividad": "actividad ejemplo Editada"
}


2.2.4- Borrar Actividad


DELETE:https://us-central1-copres-firebase.cloudfunctions.net/metrokubikoAPI/cuentas/<id_cuenta>/proyectos/<id_proyecto>/actividades/<id_actividad>


Authorization:  Token


                  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


Authorization:  Token


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>


Authorization:  Token

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>


Authorization:  Token

Body: raw Json:

{
"cantidad": 5,
"desperdicio": 0.1,
"rendimiento": 1,
}

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>


Authorization:  Token


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


Authorization:  Token

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


Authorization:  Token

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


Authorization:  Token

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>


Authorization:  Token


3- BASES DE DATOS DE ANÁLISIS DE PRECIOS UNITARIOS APUs


3.1- Listas Bases de APUs

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


Authorization:  Token

3.2- Listar Insumos

GET:https://firestore.googleapis.com/v1/projects/copres-firebase/databases/(default)/documents/cuentas/<id_cuenta>/bases_apus/<id_base>/insumos


Authorization:  Token