Модуль работы с собаками

Модуль включает функции для работы с собаками.

Функция new_dog

Функция добавляет в базу данных новую собаку.

Parametrs:

  • name(string): кличка собаки

  • osheinic_id(integer): id ошейника, должен существовать в базе и не быть привязанным к другой собаке

Returns:

json: содержит success: true в случае успешной регистрации

Raises

  • IndexException: ошейника с таким id не существует в базе данных

  • ValueException: ошейник уже привязан к другой собаке

Функция dog_list

Функция выводит список собак пользователя (проиводит выборку из таблицы connections с фильтрацией по пользователю).

Parametrs:

  • user_id(integer): Опционален, по умолчанию равен id текущего пользователя.

Return

list(json): содержит массив json объектов {'dog_id' : dog_id(integer), 'distance' : distance(float), 'last_cared' : (datetime)}. Ключ distance указывает растояние до собаки от текущего положения пользователя в метрах.

Raises

  • IndexException: пользователя с указанным id не существует в базе

Функция dog_list_all

Функция выводит список всех собак, информация о которых есть в приложении.

Parametrs

Return

list(json): содержит массив json объектов {'dog_id' : dog_id(integer), 'distance' : distance(float), 'last_cared' : (datetime)}. Ключ distance указывает растояние до собаки от текущего положения пользователя в метрах.

Функция care_about

Функция добавляет собаку в список пользователя.

Parametrs:

  • dog_id(integer): id собаки

Returns:

json: содержит success: true в случае успешной работы

Raises:

  • IndexException: собаки с указанным id не существует

  • InvalidException: собака уже находится в списке пользователя

Функция stop_care

Функция удаляет собаку из списка пользователя.

Parametrs:

  • dog_id(integer): id собаки

Returns:

json: содержит success: true в случае успешной работы

Raises:

  • IndexException: собаки с указанным id не существует

  • InvalidException: собака не находится в списке пользователя

Функция track

Функция выводит расстояние до выбранной собаки от текущего располжения пользователя. Расстояние обновляется время от времени.

Parametrs:

  • dog_id(integer): id собаки

Returns:

float: растояние до собаки в метрах

Raises:

  • IndexException: собаки с указанным id не существует

Функция stop_track

Функция останавливает отслеживание собаки.

Parametrs:

  • dog_id(integer): id собаки

Returns:

json: содержит success: true в случае успешной работы

Raises:

  • IndexException: собаки с указанным id не существует

  • InvalidException: собака с указанным id не отслеживается текущим пользователем

Функция choose_dog

С помощью этой функции пользователь может самостоятельно выбрать собаку, о которой он хочет позаботиться или принять задание от другого волонтера.

Paramentrs:

  • dog_id(integer): id собаки

Returns:

  • dog_name(string): кличка собаки

  • distance(float): расстояние до собаки в метрах

Raises:

  • IndexException: собаки с указанным id не существует