chat_front_svelte/src/lib/chat.js

278 lines
No EOL
6.3 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { PUBLIC_URL } from '$env/static/public';
export async function GetInviteLink(chatId) {
let token = localStorage.getItem("BPChat")
const response = await fetch(`${PUBLIC_URL}/api/chat/create_invitation_link?chat_id=${chatId}`,
{
method:"GET",
credentials:"include",
headers:{
'accept': 'application/json',
'Authorization': token,
}})
if(response.ok){
let data = await response.json()
return data.invitation_link
} else {
console.log(response.status)
return false
}
}
export async function addingToChat(code){
let token = localStorage.getItem("BPChat")
const response = await fetch(`${PUBLIC_URL}/api/chat/invite_to_chat/${code}`,
{
method:"GET",
credentials:"include",
headers:{
'accept': 'application/json',
'Authorization': token,
}
})
if(response.ok){
window.location.href = '/c'
} else {
return false
}
}
export async function getLastMessages(chatId,msgLoaded){
let token = localStorage.getItem('BPChat')
const response = await fetch(`${PUBLIC_URL}/api/chat/get_some_messages/${chatId}?messages_loaded=${msgLoaded}&messages_to_get=15`,
{
method:'GET',
credentials:'include',
headers: {'accept': 'application/json',
'Authorization': token,
},
})
if(response.ok){
let data = await response.json()
let msgMassive = data.messages
//console.log(msgMassive, " аа сообщения", chatId, " - айди")
if(msgMassive === null){
return []
} else {
return msgMassive
}
}
else if(response.status === 404){
console.log(response)
}
else if(!response.ok)
console.log(response.status)
}
export async function getMessageById(chatId,msgId){
let token = localStorage.getItem('BPChat')
const response = await fetch(`${PUBLIC_URL}/chat/message/${chatId}?message_id=${msgId}`,{
method:"GET",
credentials:'include',
headers: {'Authorization': token },
})
if(response.ok){
let data = await response.json();
return data;
}
else{
return { message: "Сообщение не найдено" };
}
}
export async function MessagePicToUrl(messagePic){
let token = localStorage.getItem('BPChat')
const DataForm = new FormData();
DataForm.append('file', messagePic)
const response = await fetch('${PUBLIC_URL}/api/images/upload_image',
{
method:"POST",
body:DataForm,
headers: {'Authorization': token },
})
if(!response.ok)
console.log("ошибка", response.status)
if(response.ok){
const data = await response.json();
//console.log("картинка принята")
return data.image_url;
}
}
export async function getAllChats(token){
const response = await fetch(`${PUBLIC_URL}/api/chat`,
{
method:"GET",
credentials:'include',
headers: {'Authorization': token },
})
if(response.ok){
let data = await response.json();
data = data.allowed_chats
//console.log(data)
if(data == null)
return []
else
return data
} else if(response.status == 409){
return false //если пользователь не подтвердил почту
} else {
console.log(response)
}
}
export async function getPinnedMsg(ID){
let token = localStorage.getItem('BPChat')
const response = await fetch(`${PUBLIC_URL}/api/chat/pinned_messages/${ID}`,{
method:"GET",
credentials:'include',
headers: {'Authorization': token },
})
if(response.ok){
let data = await response.json()
data = data.pinned_messages
if(data === null){
return []
} else {
return data
}
} else {
console.log(response.status)
}
}
export async function pinMessage(chatId,messageId){
let token = localStorage.getItem('BPChat')
const response = await fetch(`${PUBLIC_URL}/api/chat/pinn_message?chat_id=${chatId}&message_id=${messageId}`,{
method:"POST",
credentials:'include',
headers: {'Authorization': token },
})
if(response.ok){
const data = await response.json()
return data.pinned_message
} else
console.log(response.status)
}
export async function unpinMessage(chatId, messageId){
let token = localStorage.getItem('BPChat')
const response = await fetch(`${PUBLIC_URL}/api/chat/unpinn_message?chat_id=${chatId}&message_id=${messageId}`,{
method:"DELETE",
credentials:'include',
headers: {'Authorization': token },
})
if(response.ok){
return await response.json();
}
else
console.log(response.status)
}
export async function uploadImages(image) {
let token = localStorage.getItem('BPChat')
const formData = new FormData();
formData.append('file', image);
const response = await fetch(`${PUBLIC_URL}/api/images/upload_image`, {
method: 'POST',
credentials: 'include',
body: formData,
headers: {'Authorization': token },
});
if (response.ok) {
let data = await response.json();
return data.image_url
} else {
console.log(response);
}
}
export async function getAllUsers(nameToFind){
const response = await fetch(`${PUBLIC_URL}/api/users?username=${nameToFind}`,{
method:"GET",
credentials:'include'
})
if(response.ok){
let data = await response.json()
let anotherData = data.users
if(anotherData == null){
return []
}
return data.users
}
}
export async function createNewChat(chatName, excludeUser, token){
const response = await fetch(`${PUBLIC_URL}/api/chat/create_chat?user_to_exclude=${excludeUser}&chat_name=${chatName}`,{
method: 'POST',
credentials: 'include',
headers: {'Authorization': token },
})
if(response.ok){
let data = await response.json()
let id = data.chat_id
let chats = await getAllChats(token)
window.location.href = `/c#id=${id}`
return chats
}
else{
console.log(response)
}
}
export async function deleteChat(chatId, token){
const response = await fetch(`${PUBLIC_URL}/api/chat/delete_chat/${chatId}`,{
method: 'DELETE',
credentials: 'include',
headers: {'Authorization': token },
})
if(response.ok){
return "Чат удален"
}
else{
console.log(response)
}
}