Fix for working with backend
This commit is contained in:
parent
5ab2d8abfd
commit
d44d106b85
6 changed files with 28 additions and 22 deletions
|
|
@ -1,11 +1,12 @@
|
||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
const API_BASE_URL = 'http://localhost:3000/api';
|
const API_BASE_URL = 'http://localhost:8080/api/v1/';
|
||||||
|
|
||||||
const apiClient = axios.create({
|
const apiClient = axios.create({
|
||||||
baseURL: API_BASE_URL,
|
baseURL: API_BASE_URL,
|
||||||
timeout: 10000,
|
timeout: 10000,
|
||||||
headers: {
|
headers: {
|
||||||
'Content-Type': 'application/json',
|
'Content-Type': 'application/json',
|
||||||
|
'Origin': 'localhost:8080'
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -17,4 +18,4 @@ apiClient.interceptors.response.use(
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
export default apiClient;
|
export default apiClient;
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,12 @@ import apiClient from './api.js';
|
||||||
export const blogService = {
|
export const blogService = {
|
||||||
// Получить все статьи
|
// Получить все статьи
|
||||||
async getBlogPosts(params = {}) {
|
async getBlogPosts(params = {}) {
|
||||||
|
let request = '/post/'
|
||||||
|
if (params["offset"] != null) {
|
||||||
|
request += 'offset/' + params["offset"]
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
const response = await apiClient.get('/posts', { params });
|
const response = await apiClient.get(request);
|
||||||
return response.data;
|
return response.data;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Error fetching blog posts:', error);
|
console.error('Error fetching blog posts:', error);
|
||||||
|
|
@ -15,7 +19,7 @@ export const blogService = {
|
||||||
// Получить статью по ID
|
// Получить статью по ID
|
||||||
async getPostById(id) {
|
async getPostById(id) {
|
||||||
try {
|
try {
|
||||||
const response = await apiClient.get(`/posts/${id}`);
|
const response = await apiClient.get(`/post/${id}`);
|
||||||
return response.data;
|
return response.data;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Error fetching post:', error);
|
console.error('Error fetching post:', error);
|
||||||
|
|
@ -26,7 +30,7 @@ async getPostById(id) {
|
||||||
// Получить статьи по категории
|
// Получить статьи по категории
|
||||||
async getPostsByCategory(category, params = {}) {
|
async getPostsByCategory(category, params = {}) {
|
||||||
try {
|
try {
|
||||||
const response = await apiClient.get('/posts', {
|
const response = await apiClient.get('/post', {
|
||||||
params: { category, ...params }
|
params: { category, ...params }
|
||||||
});
|
});
|
||||||
return response.data;
|
return response.data;
|
||||||
|
|
@ -39,7 +43,7 @@ async getPostById(id) {
|
||||||
// Получить статьи по тегу
|
// Получить статьи по тегу
|
||||||
async getPostsByTag(tag, params = {}) {
|
async getPostsByTag(tag, params = {}) {
|
||||||
try {
|
try {
|
||||||
const response = await apiClient.get('/posts', {
|
const response = await apiClient.get('/post', {
|
||||||
params: { tag, ...params }
|
params: { tag, ...params }
|
||||||
});
|
});
|
||||||
return response.data;
|
return response.data;
|
||||||
|
|
@ -52,7 +56,7 @@ async getPostById(id) {
|
||||||
// Получить статьи по автору
|
// Получить статьи по автору
|
||||||
async getPostsByAuthor(username, params = {}) {
|
async getPostsByAuthor(username, params = {}) {
|
||||||
try {
|
try {
|
||||||
const response = await apiClient.get('/posts', {
|
const response = await apiClient.get('/post', {
|
||||||
params: { username, ...params }
|
params: { username, ...params }
|
||||||
});
|
});
|
||||||
return response.data;
|
return response.data;
|
||||||
|
|
@ -161,4 +165,4 @@ function getMockBlogPosts() {
|
||||||
updatedAt: "2024-01-08T13:10:00Z"
|
updatedAt: "2024-01-08T13:10:00Z"
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ export function formatDate(dateString) {
|
||||||
|
|
||||||
export function formatDateTime(dateString) {
|
export function formatDateTime(dateString) {
|
||||||
const date = new Date(dateString);
|
const date = new Date(dateString);
|
||||||
|
console.log("date: ", dateString, " ", date)
|
||||||
return date.toLocaleDateString('ru-RU', {
|
return date.toLocaleDateString('ru-RU', {
|
||||||
year: 'numeric',
|
year: 'numeric',
|
||||||
month: 'long',
|
month: 'long',
|
||||||
|
|
@ -29,4 +30,4 @@ export function getRelativeTime(dateString) {
|
||||||
if (diffInSeconds < 604800) return `${Math.floor(diffInSeconds / 86400)} дн. назад`;
|
if (diffInSeconds < 604800) return `${Math.floor(diffInSeconds / 86400)} дн. назад`;
|
||||||
|
|
||||||
return formatDate(dateString);
|
return formatDate(dateString);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,11 +12,11 @@
|
||||||
const error = writable(null);
|
const error = writable(null);
|
||||||
|
|
||||||
const slogans = [
|
const slogans = [
|
||||||
"Innovation Through Retro",
|
"Код, который решает. Команда, которая вдохновляет.",
|
||||||
"Code Like It's 1999",
|
"Ваши идеи — наш код. Ваш успех — наша миссия.",
|
||||||
"Future Ready, Retro Style",
|
"Преобразуем сложное в элегантные решения.",
|
||||||
"Where Vintage Meets Modern",
|
"Сила в технологии. Успех в команде.",
|
||||||
"Digital Revolution, Classic Soul"
|
"За пределами кода — безграничные возможности."
|
||||||
];
|
];
|
||||||
|
|
||||||
const currentSlogan = writable(slogans[0]);
|
const currentSlogan = writable(slogans[0]);
|
||||||
|
|
@ -292,8 +292,8 @@
|
||||||
{#each $blogPosts as post}
|
{#each $blogPosts as post}
|
||||||
<article class="article-preview">
|
<article class="article-preview">
|
||||||
<div class="article-meta">
|
<div class="article-meta">
|
||||||
<span class="article-date">{new Date(post.date).toLocaleDateString()}</span>
|
<span class="article-date">{new Date(post.updatedAt).toLocaleDateString()}</span>
|
||||||
<span class="article-author">by {post.author}</span>
|
<span class="article-author">by {post.username}</span>
|
||||||
</div>
|
</div>
|
||||||
<h4 class="article-title">{post.title}</h4>
|
<h4 class="article-title">{post.title}</h4>
|
||||||
<p class="article-excerpt">{post.excerpt}</p>
|
<p class="article-excerpt">{post.excerpt}</p>
|
||||||
|
|
@ -303,7 +303,7 @@
|
||||||
<span class="tag">#{tag}</span>
|
<span class="tag">#{tag}</span>
|
||||||
{/each}
|
{/each}
|
||||||
</div>
|
</div>
|
||||||
<a href={`/blog/${post.slug}`} class="read-more">READ →</a>
|
<a href={`/blog/${post.id}`} class="read-more">READ →</a>
|
||||||
</div>
|
</div>
|
||||||
</article>
|
</article>
|
||||||
{/each}
|
{/each}
|
||||||
|
|
@ -957,4 +957,4 @@
|
||||||
border: 1px solid var(--secondary-pink);
|
border: 1px solid var(--secondary-pink);
|
||||||
}
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -80,7 +80,7 @@
|
||||||
const nextPage = $currentPage + 1;
|
const nextPage = $currentPage + 1;
|
||||||
|
|
||||||
const newPosts = await blogService.getBlogPosts({
|
const newPosts = await blogService.getBlogPosts({
|
||||||
limit: postsPerPage,
|
offset: postsPerPage,
|
||||||
...buildApiFilters($selectedFilters)
|
...buildApiFilters($selectedFilters)
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -230,7 +230,7 @@
|
||||||
|
|
||||||
<div class="related-meta">
|
<div class="related-meta">
|
||||||
<span class="related-category">{relatedPost.category}</span>
|
<span class="related-category">{relatedPost.category}</span>
|
||||||
<span class="related-date">{getRelativeTime(relatedPost.updatedAt)}</span>
|
<span class="related-date">{formatDateTime(relatedPost.updatedAt)}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{#if relatedPost.description}
|
{#if relatedPost.description}
|
||||||
|
|
@ -284,7 +284,7 @@
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.post-page {
|
.post-page {
|
||||||
height: 100vh;
|
min-height: 100vh;
|
||||||
padding-top: 50px;
|
padding-top: 50px;
|
||||||
background: var(--bg-dark);
|
background: var(--bg-dark);
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
|
@ -654,4 +654,4 @@
|
||||||
padding: 15px;
|
padding: 15px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue