Бібліотечна система
Бібліотечна система для управління книгами
Завантаження...
Пошук...
Нічого не знайдено
Файл Utils.hpp

Утилітні функції для роботи з книгами Детальніше...

#include <string>
#include <vector>
#include "Book.hpp"
Діаграма включених заголовочних файлів для Utils.hpp:
Граф файлів, які включають цей файл:

Див. вихідні тексти.

Функції

std::vector< BookloadBooksFromJsonDB (const std::string &filename)
 Завантажує книги з JSON файлу бази даних
 
const std::vector< Book > & getBooks () noexcept
 Отримує посилання на глобальний вектор книг
 

Змінні

const std::vector< Bookm_books
 Вектор книг для зберігання результатів завантаження
 

Детальний опис

Утилітні функції для роботи з книгами

Опис функцій

◆ getBooks()

const std::vector< Book > & getBooks ( )
inlinenoexcept

Отримує посилання на глобальний вектор книг

Повертає
Константне посилання на вектор книг
Нотатки
Повертає поточний стан вектора m_books. Зміни у векторі будуть відображені у всіх місцях, де використовується це посилання.

◆ loadBooksFromJsonDB()

std::vector< Book > loadBooksFromJsonDB ( const std::string &  filename)

Завантажує книги з JSON файлу бази даних

Аргументи
filenameШлях до JSON файлу
Повертає
Вектор об'єктів Book
Обробка виняткових ситуацій
std::runtime_errorЯкщо файл не існує або недоступний
InvalidDataExceptionЯкщо:
  • Відсутні обов'язкові поля ("Book Id" або "Title")
  • Неправильні типи даних у полях
  • Некоректний формат ISBN13
  • Неприпустимі значення (наприклад, кількість сторінок < 1)
Нотатки
Очікує JSON файл у такому форматі:
[
{
"Book Id": "BK-000001",
"Title": "Назва книги",
"Author": "Ав Тор",
"ISBN13": "9783161484100",
"Publisher": "Видавництво",
"Number of Pages": 100,
"Year Published": 2020
}
]

Завантажує книги з JSON файлу бази даних

Аргументи
filenameШлях до JSON-файлу з даними про книги
Повертає
std::vector<Book> Вектор завантажених книг. Може бути порожнім у разі помилок
Обробка виняткових ситуацій
InvalidDataExceptionЯкщо:
  • JSON містить некоректні дані
  • Відсутні обов'язкові поля
  • Дані мають невірний тип
FileExceptionЯкщо виникають проблеми з читанням файлу
Нотатки
Очікуваний формат JSON:
[
{
"Book Id": "string",
"Title": "string",
"Author": "string",
"ISBN13": "string",
"Publisher": "string",
"Number of Pages": integer,
"Year Published": integer
}
]
Приклад використання:
try {
auto books = loadBooksFromJsonDB("data.json");
} catch(const std::exception& e) {
std::cerr << "Помилка: " << e.what();
}
std::vector< Book > loadBooksFromJsonDB(const std::string &filename)
Завантажує книги з JSON файлу бази даних
Definition Utils.cpp:77
Застереження
У разі помилок парсингу окремих записів, такі записи пропускаються

Опис змінних

◆ m_books

const std::vector<Book> m_books
inline

Вектор книг для зберігання результатів завантаження

Цей вектор використовується для тимчасового зберігання книг, завантажених з JSON файлу.