update api
This commit is contained in:
113
src/services/mock/admin.js
Normal file
113
src/services/mock/admin.js
Normal file
@@ -0,0 +1,113 @@
|
||||
// ==============================|| MOCK ADAPTER — ADMIN ||============================== //
|
||||
// Assembles the documented backend response shapes from the existing demo data in
|
||||
// src/data/mock.js. Defining these shapes IS the act of pinning the API contract:
|
||||
// when the real backend lands it must return the same structure, and flipping
|
||||
// VITE_USE_MOCK=false will send the page through to live HTTP unchanged.
|
||||
|
||||
import {
|
||||
dispatchQueue,
|
||||
activeDeliveries,
|
||||
aiInsights,
|
||||
executionFeed,
|
||||
fleetSummary,
|
||||
lanePerformance,
|
||||
hubCityStats,
|
||||
ordersTrend,
|
||||
analyticsKpis,
|
||||
orders,
|
||||
orderTimeline,
|
||||
deliveries,
|
||||
riders,
|
||||
fleetVehicles
|
||||
} from '@/data/mock';
|
||||
|
||||
const hubUtilization = Math.round(hubCityStats.reduce((s, h) => s + h.utilization, 0) / hubCityStats.length);
|
||||
|
||||
// GET /admin/dashboard
|
||||
export function mockDashboard() {
|
||||
return {
|
||||
// Headline KPI strip — previously hardcoded in the page.
|
||||
kpis: {
|
||||
totalOrders: 1402,
|
||||
activeShipments: 96,
|
||||
ridersOnline: 48,
|
||||
hubUtilization,
|
||||
revenueToday: 384200,
|
||||
slaPerformance: analyticsKpis.slaAchievement
|
||||
},
|
||||
dispatchQueue,
|
||||
activeDeliveries,
|
||||
aiInsights,
|
||||
executionFeed,
|
||||
fleetSummary,
|
||||
lanePerformance,
|
||||
ordersTrend
|
||||
};
|
||||
}
|
||||
|
||||
// GET /admin/bookings -> Booking[]
|
||||
export function mockBookings() {
|
||||
return orders;
|
||||
}
|
||||
|
||||
// GET /admin/bookings/:id -> BookingDetail
|
||||
export function mockBooking(id) {
|
||||
const order = orders.find((o) => o.id === id) || orders[0];
|
||||
const delivery = deliveries.find((d) => d.id === order.id) || deliveries[0];
|
||||
return { order, timeline: orderTimeline, delivery };
|
||||
}
|
||||
|
||||
// GET /admin/milers -> Miler[]
|
||||
export function mockMilers() {
|
||||
return riders;
|
||||
}
|
||||
|
||||
// GET /admin/dispatch-queue -> DispatchQueueItem[]
|
||||
export function mockDispatchQueue() {
|
||||
return dispatchQueue;
|
||||
}
|
||||
|
||||
// GET /admin/consignments -> Consignment[]
|
||||
export function mockConsignments() {
|
||||
return activeDeliveries;
|
||||
}
|
||||
|
||||
// GET /admin/consignments/track/:trackingno -> Consignment
|
||||
export function mockTrackConsignment(trackingNo) {
|
||||
return activeDeliveries.find((d) => d.id === trackingNo) || null;
|
||||
}
|
||||
|
||||
// Ambient fleet scatter for the tracking map.
|
||||
export function mockFleetPositions() {
|
||||
return fleetVehicles;
|
||||
}
|
||||
|
||||
// Write acknowledgements — the mock backend simply confirms the mutation.
|
||||
export function mockOk(extra = {}) {
|
||||
return { ok: true, ...extra };
|
||||
}
|
||||
|
||||
// POST /admin/login — fake token + admin profile (incl. role + fine-grained permissions).
|
||||
export function mockLogin({ authName } = {}) {
|
||||
return {
|
||||
token: 'mock.admin.jwt.token',
|
||||
profile: {
|
||||
id: 'ADM-001',
|
||||
name: 'Aman Deshmukh',
|
||||
role: 'ops_admin',
|
||||
email: authName || 'admin@doormile.in',
|
||||
permissions: [
|
||||
'dashboard:view',
|
||||
'bookings:view',
|
||||
'bookings:assign',
|
||||
'bookings:update',
|
||||
'milers:view',
|
||||
'consignments:view',
|
||||
'fleet:view',
|
||||
'hubs:view',
|
||||
'reports:view',
|
||||
'settings:view'
|
||||
]
|
||||
}
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user