82 lines
2.5 KiB
JavaScript
82 lines
2.5 KiB
JavaScript
/**
|
||
* Copyright (c) 2024-2026 Тарабанов Александр Викторович
|
||
* All rights reserved.
|
||
*
|
||
* This software is proprietary and confidential.
|
||
* Unauthorized copying, modification, or distribution is prohibited.
|
||
*
|
||
* For licensing inquiries: info@hb3-accelerator.com
|
||
* Website: https://hb3-accelerator.com
|
||
* GitHub: https://github.com/VC-HB3-Accelerator
|
||
*/
|
||
|
||
import api from '../api/axios';
|
||
|
||
export default {
|
||
async getContacts() {
|
||
const res = await api.get('/users');
|
||
if (res.data && res.data.success) {
|
||
return res.data.contacts;
|
||
}
|
||
return [];
|
||
},
|
||
async updateContact(id, data) {
|
||
const res = await api.patch(`/users/${id}`, data);
|
||
return res.data;
|
||
},
|
||
async deleteContact(id) {
|
||
try {
|
||
const res = await api.delete(`/users/${id}`);
|
||
// console.log('Ответ на удаление контакта:', res.status, res.data);
|
||
return res.data;
|
||
} catch (err) {
|
||
// console.error('Ошибка при удалении контакта:', err.response?.status, err.response?.data, err);
|
||
|
||
// Если пользователь уже удален (404), считаем это успехом
|
||
if (err.response?.status === 404) {
|
||
return { success: true, deleted: 0, message: 'Пользователь уже удален' };
|
||
}
|
||
|
||
throw err;
|
||
}
|
||
},
|
||
async getContactById(id) {
|
||
const res = await api.get(`/users/${id}`);
|
||
if (res.data && res.data.id) {
|
||
return res.data;
|
||
}
|
||
return null;
|
||
},
|
||
async blockContact(id) {
|
||
const res = await api.patch(`/users/${id}/block`);
|
||
return res.data;
|
||
},
|
||
async unblockContact(id) {
|
||
const res = await api.patch(`/users/${id}/unblock`);
|
||
return res.data;
|
||
},
|
||
// --- Работа с тегами пользователя ---
|
||
async addTagsToContact(contactId, tagIds) {
|
||
// PATCH /tags/user/:id { tags: [...] }
|
||
const res = await api.patch(`/tags/user/${contactId}`, { tags: tagIds });
|
||
return res.data;
|
||
},
|
||
async getContactTags(contactId) {
|
||
// GET /tags/user/:id
|
||
const res = await api.get(`/tags/user/${contactId}`);
|
||
return res.data.tags || [];
|
||
},
|
||
async removeTagFromContact(contactId, tagId) {
|
||
// DELETE /tags/user/:id/tag/:tagId
|
||
const res = await api.delete(`/tags/user/${contactId}/tag/${tagId}`);
|
||
return res.data;
|
||
}
|
||
};
|
||
|
||
export async function getContacts() {
|
||
const res = await api.get('/users');
|
||
if (res.data && res.data.success) {
|
||
return res.data.contacts;
|
||
}
|
||
return [];
|
||
}
|