Saltar al contenido principal

Ganaderia

Ver en Git


La ruta base para todas sera api/livestock

APIS​

api/livestock/herd​

api/livestock/herd/categories​

api/livestock/transaction/exit​

api/livestock/transaction/exit/types​

api/livestock/transaction/paddock​

Docu​

api/livestock/herd/categories​

Esta es simple, es un GET Trae todas las categorias de ganado

{
"data": [
{
"id": 1,
"name": "Terneros"
},
{
"id": 2,
"name": "Terneras"
},
{
"id": 3,
"name": "Novillito"
},
{
"id": 4,
"name": "Novillos"
},
{
"id": 5,
"name": "Vaquillonas"
},
{
"id": 6,
"name": "Vacas Invernada"
},
{
"id": 7,
"name": "Vacas Cría"
},
{
"id": 8,
"name": "Toros"
}
]
}

api/livestock/herd​

Esta es la api principal de un rodeo.
Metodos expuestos:

  • GET
  • POST
  • PATCH
  • DELETE

GET​

No hay magia todavia, es un good old get

{
"data": [
{
"herd_name": "test",
"farm_uuid": "ce33ffaf-ddb0-411b-ab1a-2f2f7c79c2e9",
"weight": 1500.0,
"type_id": 2,
"paddock_id": 1,
"farm_id": 72560,
"field_id": 258388,
"herd_uuid": "805802f5-84c1-4ed0-a3e3-1a9afad18cfd",
"field_uuid": "bf74402d-4721-49f9-8328-7313b02b4dfc",
"date_of_last_transaction": null,
"animal_count": 3,
"herd_id": 1,
"weight_unit": "Kg"
},
{
"herd_name": "Segundo test apis",
"farm_uuid": "ce33ffaf-ddb0-411b-ab1a-2f2f7c79c2e9",
"weight": 9000.0,
"type_id": 3,
"paddock_id": 2,
"farm_id": 72560,
"field_id": 258388,
"herd_uuid": "22184736-dc13-4636-8d33-4eaba40af812",
"field_uuid": "bf74402d-4721-49f9-8328-7313b02b4dfc",
"date_of_last_transaction": null,
"animal_count": 8,
"herd_id": 3,
"weight_unit": "Kg"
}
]
}

POST​

Este post es simple, recibe los parametros medio ya definidos, no cambia mucho

{
"type_id": 1,
"animal_count": 2,
"paddock_uuid": null,
"weight": 500.43,
"weight_unit": "kg",
"herd_name": "Segundo test apis",
"field_id": 2343
}

No pasa nada si mandas mas info, (mobile podes mandar fruta no pasa nada) eso son lo que usa para crear un rodeo. Si les sirve les responde el rodeo creado con su id o uuid en caso de no ingresarlos Si mandas el paddock uuid, es obligatorio para permisos, tmb tenes que mandar el field de dicha parcela, si no rompe

PATCH​

URL api/livestock/herd/<uuid:herd_uuid>​

Aca es un poco mas tranquii que lo demas aca un ejemplo de todo lo que recibe

{
"type_id": 3,
"herd_name": "Segundo test apis",
"transaction_uuid":"uuid",
"transaction_date":"date de la transaction",
"new_animals": {
"new_animals_count": 2,
"new_animals_weight": 2.3,
"new_animals_weight_unit": "Kg"
}
}

Los transaction SON PARA MOBILE si no se manda no pasa naranja El new animal genera para que ingresen nuevos animales al rodeo y una transacion

delete​

URL api/livestock/herd/<uuid:herd_uuid>​

Simplemente lo borra

api/livestock/transaction/exit/types​

Facil todos los tipos de salida

{
"data": [
{
"id": 3,
"type": "Faena"
},
{
"id": 2,
"type": "Salida hacia otro rodeo"
},
{
"id": 4,
"type": "Venta"
},
{
"id": 5,
"type": "Cambio de campo"
},
{
"id": 6,
"type": "Robo"
},
{
"id": 7,
"type": "Otro"
},
{
"id": 1,
"type": "Muertes"
}
]
}

api/livestock/transaction/exit​

POST​

Aca es para salida de ganado

{
"destination_type":1,
"animal_count":2,
"weight": 1000,
"weight_unit":"Kg",
"origin_herd_uuid": "22184736-dc13-4636-8d33-4eaba40af812",
"destination_herd_uuid": "805802f5-84c1-4ed0-a3e3-1a9afad18cfd",
"transaction_uuid":"uuid",
"transaction_date":"date de la transaction",
}

Si mandas el tipo de destination_type que es salida y no mandas destination_herd_uuid, te rompo, si lo mandas con otro tipo de desetination no pasa nada

api/livestock/transaction/paddock​

POST​

{
"origin_herd_uuid": "22184736-dc13-4636-8d33-4eaba40af812",
"origin_paddock_uuid": "789af56d-70a7-4120-96b5-aa02874d7eaa",
"destination_paddock_uuid": "081abc1a-aa03-44c5-977d-a9163f5e1d4f",
"transaction_date": "2023-05-18",
"weight": 203,
"weight_unit":"kg"
}

api/livestock/paddock or api/livestock/paddock/uuid:paddock_uuid​

GET​

{
"data": [
{
"paddock_id": 5,
"paddock_uuid": "1125a934-71b6-4d17-9a1a-a5d9369805a2",
"name": "Parcela 1 test",
"creation_ts": "2023-05-22",
"shape": "POLYGON((-59.6969175338745 -34.1914642334418,-59.6950721740723 -34.1924581727268,-59.6953725814819 -34.193487597494,-59.6972608566284 -34.1941620413899,-59.6992778778076 -34.1938070715907,-59.698805809021 -34.1923871774521,-59.6976470947266 -34.1918547109865,-59.6969175338745 -34.1914642334418))",
"area": 7.57465980374813
},
{
"paddock_id": 3,
"paddock_uuid": "26ce6e4c-d3f0-4c67-89e7-f4ec2b3bdc54",
"name": "Parcela 1 test (patch 2)",
"creation_ts": "2023-05-22",
"shape": "POLYGON((-59.6969175338745 -34.1914642334418,-59.6950721740723 -34.1924581727268,-59.6953725814819 -34.193487597494,-59.6972608566284 -34.1941620413899,-59.6992778778076 -34.1938070715907,-59.698805809021 -34.1923871774521,-59.6976470947266 -34.1918547109865,-59.6969175338745 -34.1914642334418))",
"area": 3.77398852224927
}
]
}

Esto te devuelve el get

Podes pasar field_id o field_uuid como argumento

POST​

En el post se debe mandar los siguientes datos

{
"field_id": 258388,
"shape":"POLYGON((-59.69691753387451 -34.19146423344178,-59.695072174072266 -34.19245817272681,-59.69537258148192 -34.19348759749397,-59.69726085662841 -34.19416204138989,-59.69927787780762 -34.19380707159075,-59.698805809020996 -34.19238717745208,-59.69764709472656 -34.19185471098653,-59.69691753387451 -34.19146423344178))",
"date": "2023-05-22T15:27:09.147Z",
"name":"Parcela 1 test"
}

Todos deberian ser obligatorios, por el momento Chequeate que el shape es un string del poligono, es como mandan en zonas de gestion por ejemplo

PATCH (ACA ES CON EL UUID EN EL PATH)​

Aca aceptan dos cosas

{
"name":"Parcela 1 test (patch 2)",
"shape":"POLYGON((-59.69691753387451 -34.19146423344178,-59.695072174072266 -34.19245817272681,-59.69537258148192 -34.19348759749397,-59.69726085662841 -34.19416204138989,-59.69927787780762 -34.19380707159075,-59.698805809020996 -34.19238717745208,-59.69764709472656 -34.19185471098653,-59.69691753387451 -34.19146423344178))"
}

El name y el shape, podes mandar ambos o solo 1

DELETE (ACA ES CON EL UUID EN EL PATH)​

Nada lo borra perri