{"version":3,"file":"add_news-1146ed73.js","sources":["../../js/posts-rest-api.js","../../js/posts-ui.js","../../js/posts.js","../../add_news.html?html-proxy&index=1.js"],"sourcesContent":["// модуль для работы с REST API сервера\n\n// адрес сервера\nconst serverUrl = \"http://localhost:8081\";\n\n// функция возвращает объект нужной структуры для отправки на сервер\nfunction createLineObject(id, text, title, date, image) {\n return {\n id,\n text,\n title,\n date,\n image,\n };\n}\n\n// обращение к серверу для получения всех записей (get)\nexport async function getAllLines() {\n const response = await fetch(`${serverUrl}/news`);\n if (!response.ok) {\n throw response.statusText;\n }\n return response.json();\n}\n\n// обращение к серверу для получения записи по первичному ключу (id) (get)\n// id передается в качестве части пути URL get-запроса\nexport async function getLine(id) {\n const response = await fetch(`${serverUrl}/news/${id}`);\n if (!response.ok) {\n throw response.statusText;\n }\n return response.json();\n}\n\n// обращение к серверу для создания записи (post)\n// объект отправляется в теле запроса (body)\nexport async function createLine(text, title, date, image) {\n const itemObject = createLineObject(0, text, title, date, image);\n\n const options = {\n method: \"POST\",\n body: JSON.stringify(itemObject),\n headers: {\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n };\n\n const response = await fetch(`${serverUrl}/news`, options);\n if (!response.ok) {\n throw response.statusText;\n }\n return response.json();\n}\n\n// обращение к серверу для обновления записи по id (put)\n// объект отправляется в теле запроса (body)\n// id передается в качестве части пути URL get-запроса\nexport async function updateLine(id, text, title, date, image) {\n const newObject = createLineObject(id, text, title, date, image);\n\n const options = {\n method: \"PUT\",\n body: JSON.stringify(newObject),\n headers: {\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n };\n\n const response = await fetch(`${serverUrl}/news/${id}`, options);\n if (!response.ok) {\n throw response.statusText;\n }\n return response.json();\n}\n\n// обращение к серверу для удаления записи по id (delete)\n// id передается в качестве части пути URL get-запроса\nexport async function deleteLine(id) {\n const options = {\n method: \"DELETE\",\n };\n\n const response = await fetch(`${serverUrl}/news/${id}`, options);\n if (!response.ok) {\n throw response.statusText;\n }\n return response.json();\n}\n","// модуль для работы с элементами управления\n\n// объект для удобного получения элементов\n// при обращении к атрибуту объекта вызывается\n// нужная функция для поиска элемента\nexport const cntrls = {\n form: document.getElementById(\"add-news-form\"),\n list: document.getElementById(\"list-news\"),\n title: document.getElementById(\"title\"),\n date: document.getElementById(\"date\"),\n text: document.getElementById(\"text\"),\n image: document.getElementById(\"image\"),\n imagePreview: document.getElementById(\"image-preview\"),\n};\n\n// Дефолтное превью\nexport const imagePlaceholder = \"https://via.placeholder.com/200\";\n\n// создать пост\nexport function createPost(elem) {\n cntrls.list.inserAdjacentHTML(getTemplate(elem));\n console.info(\"Post was creating\");\n}\n\n// шаблон поста\nfunction getTemplate(elem) {\n return `\n
${elem.date}
\n${elem.text}
\n