Pecuario.Backend

<back to all web services

GetDashboard

The following routes are available for this service:
GET/api/v1/dashboard
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Status:
    message: Optional[str] = None
    status_code: int = 0


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class BaseResponse:
    status: Optional[Status] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class AnimalCategory:
    id: int = 0
    # @Required()
    # @StringLength(50)
    name: Optional[str] = None

    alias: Optional[str] = None
    order: int = 0
    enabled: bool = False


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DashboardLand:
    id: Optional[str] = None
    description: Optional[str] = None
    image: Optional[str] = None
    type: Optional[str] = None
    price: Optional[str] = None
    city_region_name: Optional[str] = None
    price_type: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class GetDashboardResponse(BaseResponse):
    animal_categories: Optional[List[AnimalCategory]] = None
    animals_by_category: Optional[Dict[int, List[DashboardAnimal]]] = None
    lands: Optional[List[DashboardLand]] = None
    greeting: Optional[str] = None
    farms_count: int = 0


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class GetDashboard(IGet):
    country_id: Optional[int] = None
    max_animals: Optional[int] = None
    max_lands: Optional[int] = None

Python GetDashboard DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /api/v1/dashboard HTTP/1.1 
Host: pecuario-backend.develsystems.com 
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	animalCategories: 
	[
		{
			id: 0,
			name: String,
			alias: String,
			order: 0,
			enabled: False
		}
	],
	animalsByCategory: 
	{
		0: 
		[
			{
				id: String,
				description: String,
				image: String,
				type: String,
				price: String,
				cityRegionName: String,
				priceType: String
			}
		]
	},
	lands: 
	[
		{
			id: String,
			description: String,
			image: String,
			type: String,
			price: String,
			cityRegionName: String,
			priceType: String
		}
	],
	greeting: String,
	farmsCount: 0
}