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

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

#include "Utils.hpp"
#include <algorithm>
#include <format>
#include <fstream>
#include <ftxui/dom/elements.hpp>
#include <ftxui/screen/screen.hpp>
#include <iomanip>
#include <iostream>
#include <nlohmann/json.hpp>
#include <optional>
#include "Book.hpp"
#include "CustomExceptions.hpp"
Діаграма включених заголовочних файлів для Utils.cpp:

Функції

void processBookItem (const nlohmann::json &item, std::vector< Book > &books)
 Обробляє окремий елемент JSON та додає його до колекції книг
 
std::vector< BookloadBooksFromJsonDB (const std::string &filename)
 Завантажує колекцію книг з JSON-файлу
 

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

Реалізація утилітних функцій для роботи з даними книг

Надає функціонал для завантаження даних книг з JSON-файлів та їх обробки

Опис функцій

◆ loadBooksFromJsonDB()

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

Завантажує колекцію книг з JSON-файлу

Завантажує книги з 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
Застереження
У разі помилок парсингу окремих записів, такі записи пропускаються

◆ processBookItem()

void processBookItem ( const nlohmann::json &  item,
std::vector< Book > &  books 
)

Обробляє окремий елемент JSON та додає його до колекції книг

Аргументи
itemJSON-елемент, що представляє книгу
booksВектор книг, до якого додається нова книга