# AUTO-GENERATED by scripts/oas-sync emit-resource Food Diary. Do not edit by hand.
"""Resource wrapper for the OAS ``Food Diary`` tag (generated)."""
from __future__ import annotations
from typing import Any, Optional
from .._base import BaseResource
from ...models._generated.food_diary import Day, FoodEntry
class DiaryResource(BaseResource):
"""Resource methods for the OAS `Food Diary` tag (generated)."""
[docs]
def entries_copy_saved_meal_v1(
self,
saved_meal_id: int,
meal: str,
date: Optional[int] = None,
) -> bool:
"""food_entries.copy_saved_meal (v1). Premier-only."""
params: dict[str, Any] = {"method": "food_entries.copy_saved_meal"}
params["saved_meal_id"] = saved_meal_id
params["meal"] = meal
self._client._set_optional(
params,
[
("date", None if date is None else self._client.unix_time_v2(date)),
],
)
payload = self._client._call(params, method="POST")
return self._client._mutator_success(payload)
[docs]
def entries_copy_v1(
self,
from_date: int,
to_date: int,
meal: Optional[str] = None,
) -> bool:
"""food_entries.copy (v1). Premier-only."""
params: dict[str, Any] = {"method": "food_entries.copy"}
params["from_date"] = self._client.unix_time_v2(from_date)
params["to_date"] = self._client.unix_time_v2(to_date)
self._client._set_optional(
params,
[
("meal", meal),
],
)
payload = self._client._call(params, method="POST")
return self._client._mutator_success(payload)
[docs]
def entries_get_month_v1(
self,
date: Optional[int] = None,
) -> list[Day]:
"""food_entries.get_month (v1). DEPRECATED upstream. Premier-only."""
params: dict[str, Any] = {"method": "food_entries.get_month"}
self._client._set_optional(
params,
[
("date", None if date is None else self._client.unix_time_v2(date)),
],
)
payload = self._client._call(params)
raw = self._client._unwrap(payload, "month", list_key="day")
return [Day.model_validate(r) for r in raw]
[docs]
def entries_get_month_v2(
self,
date: Optional[int] = None,
) -> list[Day]:
"""food_entries.get_month (v2). Premier-only."""
params: dict[str, Any] = {"method": "food_entries.get_month.v2"}
self._client._set_optional(
params,
[
("date", None if date is None else self._client.unix_time_v2(date)),
],
)
payload = self._client._call(params)
raw = self._client._unwrap(payload, "month", list_key="day")
return [Day.model_validate(r) for r in raw]
def entries_get_v1(
self,
date: Optional[int] = None,
food_entry_id: Optional[int] = None,
) -> list[FoodEntry]:
"""food_entries.get (v1). DEPRECATED upstream. Premier-only."""
params: dict[str, Any] = {"method": "food_entries.get"}
self._client._set_optional(
params,
[
("date", None if date is None else self._client.unix_time_v2(date)),
("food_entry_id", food_entry_id),
],
)
payload = self._client._call(params)
raw = self._client._unwrap(payload, "food_entries", list_key="food_entry")
return [FoodEntry.model_validate(r) for r in raw]
def entries_get_v2(
self,
date: Optional[int] = None,
food_entry_id: Optional[int] = None,
) -> list[FoodEntry]:
"""food_entries.get (v2). Premier-only."""
params: dict[str, Any] = {"method": "food_entries.get.v2"}
self._client._set_optional(
params,
[
("date", None if date is None else self._client.unix_time_v2(date)),
("food_entry_id", food_entry_id),
],
)
payload = self._client._call(params)
raw = self._client._unwrap(payload, "food_entries", list_key="food_entry")
return [FoodEntry.model_validate(r) for r in raw]
[docs]
def entry_create_v1(
self,
food_id: int,
food_entry_name: str,
serving_id: int,
number_of_units: float,
meal: str,
date: Optional[int] = None,
) -> list[FoodEntry]:
"""food_entry.create (v1). Premier-only."""
params: dict[str, Any] = {"method": "food_entry.create"}
params["food_id"] = food_id
params["food_entry_name"] = food_entry_name
params["serving_id"] = serving_id
params["number_of_units"] = number_of_units
params["meal"] = meal
self._client._set_optional(
params,
[
("date", None if date is None else self._client.unix_time_v2(date)),
],
)
payload = self._client._call(params, method="POST")
raw = self._client._unwrap(payload, "food_entries", list_key="food_entry")
return [FoodEntry.model_validate(r) for r in raw]
[docs]
def entry_delete_v1(
self,
food_entry_id: int,
) -> bool:
"""food_entry.delete (v1). Premier-only."""
params: dict[str, Any] = {"method": "food_entry.delete"}
params["food_entry_id"] = food_entry_id
payload = self._client._call(params, method="DELETE")
return self._client._mutator_success(payload)
[docs]
def entry_edit_v1(
self,
food_entry_id: int,
food_entry_name: Optional[str] = None,
serving_id: Optional[int] = None,
number_of_units: Optional[float] = None,
meal: Optional[str] = None,
) -> bool:
"""food_entry.edit (v1). Premier-only."""
params: dict[str, Any] = {"method": "food_entry.edit"}
params["food_entry_id"] = food_entry_id
self._client._set_optional(
params,
[
("food_entry_name", food_entry_name),
("serving_id", serving_id),
("number_of_units", number_of_units),
("meal", meal),
],
)
payload = self._client._call(params, method="PUT")
return self._client._mutator_success(payload)
__all__ = ["DiaryResource"]