88 lines
3.6 KiB
JavaScript
88 lines
3.6 KiB
JavaScript
/**
|
|
* Directus API Service for kashilo.com — Facade
|
|
* Re-exports modular sub-services as a single backward-compatible singleton.
|
|
* @module services/directus
|
|
*/
|
|
|
|
import { client, DirectusError } from './directus/client.js'
|
|
import * as authApi from './directus/auth.js'
|
|
import * as listingsApi from './directus/listings.js'
|
|
import * as categoriesApi from './directus/categories.js'
|
|
import * as locationsApi from './directus/locations.js'
|
|
import * as conversationsApi from './directus/conversations.js'
|
|
import * as filesApi from './directus/files.js'
|
|
import * as notificationsApi from './directus/notifications.js'
|
|
|
|
const directus = {
|
|
// ── Client / Token ──
|
|
get baseUrl() { return client.baseUrl },
|
|
get accessToken() { return client.accessToken },
|
|
isAuthenticated: () => client.isAuthenticated(),
|
|
clearTokens: () => client.clearTokens(),
|
|
|
|
// ── Generic HTTP (used by external services like favorites) ──
|
|
get: (endpoint, params) => client.get(endpoint, params),
|
|
post: (endpoint, data) => client.post(endpoint, data),
|
|
patch: (endpoint, data) => client.patch(endpoint, data),
|
|
delete: (endpoint) => client.delete(endpoint),
|
|
|
|
// ── Auth ──
|
|
login: authApi.login,
|
|
logout: authApi.logout,
|
|
register: authApi.register,
|
|
requestPasswordReset: authApi.requestPasswordReset,
|
|
resetPassword: authApi.resetPassword,
|
|
getCurrentUser: authApi.getCurrentUser,
|
|
updateCurrentUser: authApi.updateCurrentUser,
|
|
|
|
// ── Listings ──
|
|
getListings: listingsApi.getListings,
|
|
getListing: listingsApi.getListing,
|
|
createListing: listingsApi.createListing,
|
|
updateListing: listingsApi.updateListing,
|
|
incrementListingViews: listingsApi.incrementListingViews,
|
|
deleteListing: listingsApi.deleteListing,
|
|
getMyListings: listingsApi.getMyListings,
|
|
searchListings: listingsApi.searchListings,
|
|
getListingsByCategory: listingsApi.getListingsByCategory,
|
|
getListingsByLocation: listingsApi.getListingsByLocation,
|
|
|
|
// ── Categories ──
|
|
getCategories: categoriesApi.getCategories,
|
|
getCategory: categoriesApi.getCategory,
|
|
getCategoryTree: categoriesApi.getCategoryTree,
|
|
buildCategoryTree: categoriesApi.buildCategoryTree,
|
|
getSubcategories: categoriesApi.getSubcategories,
|
|
|
|
// ── Locations ──
|
|
getLocations: locationsApi.getLocations,
|
|
getLocation: locationsApi.getLocation,
|
|
searchLocations: locationsApi.searchLocations,
|
|
getLocationsByRegion: locationsApi.getLocationsByRegion,
|
|
getLocationsByCountry: locationsApi.getLocationsByCountry,
|
|
|
|
// ── Conversations ──
|
|
getConversations: conversationsApi.getConversations,
|
|
getConversation: conversationsApi.getConversation,
|
|
getConversationMessages: conversationsApi.getConversationMessages,
|
|
sendMessage: conversationsApi.sendMessage,
|
|
startConversation: conversationsApi.startConversation,
|
|
findConversation: conversationsApi.findConversation,
|
|
updateConversationStatus: conversationsApi.updateConversationStatus,
|
|
|
|
// ── Files ──
|
|
uploadFile: filesApi.uploadFile,
|
|
uploadMultipleFiles: filesApi.uploadMultipleFiles,
|
|
getFileUrl: filesApi.getFileUrl,
|
|
getThumbnailUrl: filesApi.getThumbnailUrl,
|
|
|
|
// ── Notifications ──
|
|
getNotifications: notificationsApi.getNotifications,
|
|
getUnreadCount: notificationsApi.getUnreadCount,
|
|
markNotificationRead: notificationsApi.markNotificationRead,
|
|
markAllNotificationsRead: notificationsApi.markAllNotificationsRead,
|
|
deleteNotification: notificationsApi.deleteNotification
|
|
}
|
|
|
|
export { directus, DirectusError }
|