Internet_programming/Lab3/js/cards_api.js
2023-12-10 23:31:11 +03:00

85 lines
2.5 KiB
JavaScript

// Адрес сервера
const serverUrl = "http://localhost:8081";
// Функция для создания объекта нужной структуры для отправки на сервер
function createLineObject(item, title, text, image,date) {
return {
itemsId: item,
title,
text,
image,
date,
};
}
// Обращение к серверу для получения всех записей (GET)
export async function getAllLines() {
const response = await fetch(`${serverUrl}/lines?_expand=items`);
if (!response.ok) {
throw response.statusText;
}
return response.json();
}
// Обращение к серверу для получения записи по id (GET)
export async function getLine(id) {
const response = await fetch(`${serverUrl}/lines/${id}?_expand=items`);
if (!response.ok) {
throw response.statusText;
}
return response.json();
}
// Обращение к серверу для создания записи (POST)
export async function createLine(item, title, text, image,date) {
const itemObject = createLineObject(item, title, text, image,date);
const options = {
method: "POST",
body: JSON.stringify(itemObject),
headers: {
"Accept": "application/json",
"Content-Type": "application/json",
},
};
const response = await fetch(`${serverUrl}/lines`, options);
if (!response.ok) {
throw response.statusText;
}
return response.json();
}
// Обращение к серверу для обновления записи по id (PUT)
export async function updateLine(id, item, title, text, image, date) {
const itemObject = createLineObject(item, title, text, image, date);
const options = {
method: "PUT",
body: JSON.stringify(itemObject),
headers: {
"Accept": "application/json",
"Content-Type": "application/json",
},
};
const response = await fetch(`${serverUrl}/lines/${id}`, options);
if (!response.ok) {
throw response.statusText;
}
return response.json();
}
// Обращение к серверу для удаления записи по id (DELETE)
export async function deleteLine(id) {
const options = {
method: "DELETE",
};
const response = await fetch(`${serverUrl}/lines/${id}`, options);
if (!response.ok) {
throw response.statusText;
}
return response.json();
}