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