62 lines
No EOL
1.8 KiB
JavaScript
62 lines
No EOL
1.8 KiB
JavaScript
import apiClient from './api';
|
|
|
|
const blogService = {
|
|
/**
|
|
* Get all published blog posts with optional filtering
|
|
* @param {Object} params - Query parameters for filtering posts
|
|
* @returns {Promise} Promise with the API response
|
|
*/
|
|
getAllPosts: async (params = {}) => {
|
|
try {
|
|
const response = await apiClient.get('/blog', { params });
|
|
return response.data;
|
|
} catch (error) {
|
|
throw error.response?.data || { message: 'An unknown error occurred' };
|
|
}
|
|
},
|
|
|
|
/**
|
|
* Get a single blog post by slug
|
|
* @param {string} slug - Blog post slug
|
|
* @returns {Promise} Promise with the API response
|
|
*/
|
|
getPostBySlug: async (slug) => {
|
|
try {
|
|
const response = await apiClient.get(`/blog/${slug}`);
|
|
return response.data;
|
|
} catch (error) {
|
|
throw error.response?.data || { message: 'An unknown error occurred' };
|
|
}
|
|
},
|
|
|
|
/**
|
|
* Get all blog categories
|
|
* @returns {Promise} Promise with the API response
|
|
*/
|
|
getAllCategories: async () => {
|
|
try {
|
|
const response = await apiClient.get('/blog/categories/all');
|
|
return response.data;
|
|
} catch (error) {
|
|
throw error.response?.data || { message: 'An unknown error occurred' };
|
|
}
|
|
},
|
|
|
|
/**
|
|
* Add a comment to a blog post
|
|
* @param {string} postId - Blog post ID
|
|
* @param {Object} commentData - Comment data to submit
|
|
* @param {string} commentData.userId - User ID
|
|
* @returns {Promise} Promise with the API response
|
|
*/
|
|
addComment: async (postId, commentData) => {
|
|
try {
|
|
const response = await apiClient.post(`/blog/${postId}/comments`, commentData);
|
|
return response.data;
|
|
} catch (error) {
|
|
throw error.response?.data || { message: 'An unknown error occurred' };
|
|
}
|
|
}
|
|
};
|
|
|
|
export default blogService; |