Files
nosys_libs/p2post/vue/api/p2postApi.js
2026-01-25 13:55:46 +10:00

86 lines
2.6 KiB
JavaScript

import { useP2postStore } from '../stores/p2postStore'
const p2postStore = useP2postStore()
const p2postApiUrl = "/api/p2post"
export const p2postApi = {
async getMyUsers(){
try {
const response = await fetch(p2postApiUrl+'/myusers')
if (!response.ok) {
const errorText = await response.text();
throw new Error(`Error fetching posts: ${response.status} - ${errorText}`);
}
const result = await response.json()
p2postStore.users = result
return result;
} catch (error) {
console.error("Error fetching posts:", error);
throw error;
}
},
async getPosts(){
try {
const response = await fetch(p2postApiUrl+'/posts')
if (!response.ok) {
const errorText = await response.text();
throw new Error(`Error fetching posts: ${response.status} - ${errorText}`);
}
const result = await response.json()
return result;
} catch (error) {
console.error("Error fetching posts:", error);
throw error;
}
},
async createPosts(user, content, medias, networks){
const data = {"user": user, "content": content, "medias": medias, "networks": networks};
const requestOptions = {
method: 'POST',
headers: {'Content-Type': 'application/json',},
body: JSON.stringify(data),
};
try {
const response = await fetch(p2postApiUrl+"/posts", requestOptions);
if (!response.ok) {
const errorText = await response.text();
throw new Error(`Error fetching posts: ${response.status} - ${errorText}`);
}
const result = await response.json();
return result;
} catch (error) {
console.error("Error fetching posts:", error);
throw error;
}
},
async uploadFile(file) {
const formData = new FormData();
formData.append("file", file);
try {
const response = await fetch(p2postApiUrl + "/medias", {
method: "POST",
body: formData,
});
if (!response.ok) {
const errorText = await response.text();
throw new Error(`Error uploading file: ${response.status} - ${errorText}`);
}
const result = await response.json();
return result;
} catch (error) {
console.error("Error uploading file:", error);
throw error;
}
}
}