Fix queries
This commit is contained in:
parent
cb26b8edcd
commit
225d45307a
@ -0,0 +1 @@
|
|||||||
|
PAYLOAD_URL=http://localhost:3001
|
@ -18,9 +18,11 @@
|
|||||||
"@radix-ui/react-label": "^2.0.2",
|
"@radix-ui/react-label": "^2.0.2",
|
||||||
"@radix-ui/react-slot": "^1.0.2",
|
"@radix-ui/react-slot": "^1.0.2",
|
||||||
"@tanstack/react-query": "^5.28.14",
|
"@tanstack/react-query": "^5.28.14",
|
||||||
|
"@types/leaflet": "^1.9.8",
|
||||||
"@types/react": "^18.2.74",
|
"@types/react": "^18.2.74",
|
||||||
"@types/react-dom": "^18.2.23",
|
"@types/react-dom": "^18.2.23",
|
||||||
"astro": "^4.5.13",
|
"astro": "^4.5.13",
|
||||||
|
"axios": "^1.6.8",
|
||||||
"class-variance-authority": "^0.7.0",
|
"class-variance-authority": "^0.7.0",
|
||||||
"clsx": "^2.1.0",
|
"clsx": "^2.1.0",
|
||||||
"css-select": "5.1.0",
|
"css-select": "5.1.0",
|
||||||
|
@ -5,18 +5,8 @@ import { KiosMap } from "@/components/KiosMap"
|
|||||||
export const queryClient = new QueryClient({
|
export const queryClient = new QueryClient({
|
||||||
defaultOptions: {
|
defaultOptions: {
|
||||||
queries: {
|
queries: {
|
||||||
refetchOnWindowFocus: false,
|
|
||||||
retry: false,
|
|
||||||
staleTime: 30000,
|
staleTime: 30000,
|
||||||
refetchOnReconnect: true,
|
|
||||||
refetchOnMount: true,
|
|
||||||
networkMode: "online",
|
|
||||||
},
|
},
|
||||||
mutations: {
|
|
||||||
networkMode: "offlineFirst",
|
|
||||||
retry: 1,
|
|
||||||
},
|
|
||||||
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -27,10 +17,10 @@ interface AppProps {
|
|||||||
export const App: React.FC<AppProps> = (props) => {
|
export const App: React.FC<AppProps> = (props) => {
|
||||||
return (
|
return (
|
||||||
<div className="app">
|
<div className="app">
|
||||||
<QueryClientProvider client={queryClient}>
|
<QueryClientProvider client={queryClient}>
|
||||||
{props.children}
|
{props.children}
|
||||||
<KiosMap></KiosMap>
|
<KiosMap/>
|
||||||
</QueryClientProvider>
|
</QueryClientProvider>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,13 @@
|
|||||||
import React, { useEffect } from 'react';
|
import React, { useEffect } from 'react';
|
||||||
import { MapContainer, TileLayer, Marker, Popup, Polyline, LayerGroup, GeoJSON } from 'react-leaflet';
|
import { MapContainer, TileLayer, Marker, CircleMarker, Popup, Polyline, LayerGroup, GeoJSON, } from 'react-leaflet';
|
||||||
// import 'leaflet/dist/leaflet.css';
|
// import 'leaflet/dist/leaflet.css';
|
||||||
|
|
||||||
|
import L from 'leaflet';
|
||||||
|
|
||||||
import { useQuery, useMutation, useQueryClient, queryOptions } from "@tanstack/react-query";
|
import { useQuery, useMutation, useQueryClient, queryOptions } from "@tanstack/react-query";
|
||||||
import { queryClient } from "@/components/App"
|
import axios from "axios";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//Todo: Move types to own file
|
//Todo: Move types to own file
|
||||||
type Product = {
|
type Product = {
|
||||||
@ -35,113 +40,182 @@ type Retailer = {
|
|||||||
updatedAt: string;
|
updatedAt: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
interface Courier {
|
||||||
|
id: string;
|
||||||
|
name: string;
|
||||||
|
startingPoint: string;
|
||||||
|
destination: string;
|
||||||
|
departureDate: string;
|
||||||
|
arrivalDate: string;
|
||||||
|
weightAllowance: number;
|
||||||
|
createdAt: string;
|
||||||
|
updatedAt: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Dispatch {
|
||||||
|
id: string;
|
||||||
|
dispatchesCode: string;
|
||||||
|
products: Product[];
|
||||||
|
typeOfTransportation: string[];
|
||||||
|
courier: Courier;
|
||||||
|
timeSensitive: boolean;
|
||||||
|
status: string[];
|
||||||
|
createdAt: string;
|
||||||
|
updatedAt: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//Todo: update fetch url endpoints
|
//Todo: update fetch url endpoints
|
||||||
//Todo: Move queryclient and hooks to own file
|
//Todo: Move queryclient and hooks to own file
|
||||||
|
const ROOT_URL = "http://localhost:3001"
|
||||||
|
|
||||||
const getMakers = async () => {
|
const getMakers = async () => {
|
||||||
const response = await fetch("https://kios-admin.lumbung.space/api/makers");
|
const url = `${ROOT_URL}/api/makers`
|
||||||
const makers: Maker[] = (await response.json()).docs;
|
console.log("Fetching url:", url)
|
||||||
console.log(makers)
|
const response = await axios.get(url);
|
||||||
|
|
||||||
|
const makers = response.data.docs;
|
||||||
|
console.log(`Fetch result from ${url}`, makers)
|
||||||
return makers;
|
return makers;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const useGetMakers = () => {
|
const useGetMakers = () => {
|
||||||
return useQuery<Maker[]>({
|
return useQuery<Maker[]>({
|
||||||
queryFn: () => getMakers(),
|
queryFn: () => getMakers(),
|
||||||
queryKey: ['makers']
|
queryKey: ['makers'],
|
||||||
|
enabled: true
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const getRetailers = async () => {
|
const getRetailers = async () => {
|
||||||
const response = await fetch("https://kios-admin.lumbung.space/api/makers");
|
const url = `${ROOT_URL}/api/retailers`
|
||||||
const makers: Maker[] = (await response.json()).docs;
|
console.log("Fetching url:", url)
|
||||||
return makers;
|
const response = await axios.get(url);
|
||||||
|
|
||||||
|
const retailers = response.data.docs;
|
||||||
|
console.log(`Fetch result from ${url}`, retailers)
|
||||||
|
return retailers;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
const useGetRetailers = () => {
|
||||||
|
return useQuery<Dispatch[]>({
|
||||||
|
queryFn: () => getRetailers(),
|
||||||
|
queryKey: ['retailers'],
|
||||||
|
enabled: true
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
const getDispatches = async () => {
|
||||||
|
const url = `${ROOT_URL}/api/dispatches`
|
||||||
|
console.log("Fetching url:", url)
|
||||||
|
const response = await axios.get(url);
|
||||||
|
|
||||||
|
const dispatches = response.data.docs;
|
||||||
|
console.log(`Fetch result from ${url}`, dispatches)
|
||||||
|
return dispatches;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
const useGetDispatches = () => {
|
||||||
|
return useQuery<Dispatch[]>({
|
||||||
|
queryFn: () => getRetailers(),
|
||||||
|
queryKey: ['retailers'],
|
||||||
|
enabled: true
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
export const KiosMap = () => {
|
export const KiosMap = () => {
|
||||||
|
|
||||||
const { data: makers, isLoading: isLoadingMakers, isError } = useGetMakers();
|
const { data: makers, isLoading: isLoadingMakers } = useGetMakers();
|
||||||
const retailers = false
|
const { data: retailers, isLoading: isLoadingRetailers } = useGetRetailers();
|
||||||
|
const { data: dispatches, isLoading: isLoadingDispatches } = useGetDispatches();
|
||||||
|
|
||||||
|
|
||||||
// const blackDotIcon = L.divIcon({
|
const blackDotIcon = L.divIcon({
|
||||||
// className: 'black-dot',
|
className: 'black-dot',
|
||||||
// iconSize: [20, 20],
|
iconSize: [20, 20],
|
||||||
// iconAnchor: [10, 10]
|
iconAnchor: [10, 10]
|
||||||
// });
|
});
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<MapContainer
|
<MapContainer
|
||||||
id="map"
|
id="map"
|
||||||
// center={[-6.1815, 106.8228]}
|
center={[-6.1815, 106.8228]}
|
||||||
//zoom={3}
|
//zoom={3}
|
||||||
style={{ width: '100%', paddingBottom: '70%', marginBottom: '80px' }}
|
className="w-full"
|
||||||
>
|
>
|
||||||
<TileLayer url="https://tile.openstreetmap.org/{z}/{x}/{y}.png"
|
<TileLayer url="https://tile.openstreetmap.org/{z}/{x}/{y}.png"
|
||||||
// maxZoom={19}
|
maxZoom={19}
|
||||||
// attribution='© <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>'
|
attribution='© <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>'
|
||||||
/>
|
/>
|
||||||
|
|
||||||
{makers &&
|
{makers &&
|
||||||
<LayerGroup>
|
<LayerGroup>
|
||||||
{makers.map((maker: any, index: number) => (
|
{makers.map((maker: any, index: number) => (
|
||||||
<Marker
|
<CircleMarker
|
||||||
key={index}
|
key={index}
|
||||||
position={[maker.location[0], maker.location[1]]}
|
center={[maker.location[0], maker.location[1]]}
|
||||||
//icon={blackDotIcon}
|
fillColor='black'
|
||||||
>
|
>
|
||||||
<Popup>{maker.name}</Popup>
|
<Popup>{maker.name}</Popup>
|
||||||
</Marker>
|
</CircleMarker>
|
||||||
))}
|
))}
|
||||||
</LayerGroup>
|
</LayerGroup>
|
||||||
}
|
}
|
||||||
|
|
||||||
{/* {retailers
|
{retailers &&
|
||||||
<LayerGroup>
|
<LayerGroup>
|
||||||
{data.retailers.map((retailer: any, index: number) => (
|
{retailers.map((retailer: any, index: number) => (
|
||||||
<Marker key={index} position={[retailer.location[0], retailer.location[1]]} icon={blackDotIcon}>
|
<CircleMarker
|
||||||
<Popup>{retailer.name}</Popup>
|
key={index}
|
||||||
</Marker>
|
center={[retailer.location[0], retailer.location[1]]}
|
||||||
))}
|
fillColor='black'
|
||||||
</LayerGroup>
|
>
|
||||||
} */}
|
<Popup>{retailer.name}</Popup>
|
||||||
|
</CircleMarker>
|
||||||
|
))}
|
||||||
|
</LayerGroup>
|
||||||
|
}
|
||||||
|
|
||||||
|
{dispatches &&
|
||||||
|
<LayerGroup>
|
||||||
|
{dispatches.map((dispatch: any, index: number) => {
|
||||||
|
const start = dispatch.startingPoint.location;
|
||||||
|
const end = dispatch.endPoint.location;
|
||||||
|
|
||||||
{/* <LayerGroup>
|
let productsString = '';
|
||||||
{data.dispatches.map((dispatch: any, index: number) => {
|
dispatch.products.forEach((product: any, i: number) => {
|
||||||
const start = dispatch.startingPoint.location;
|
productsString += product.productTitle + (i + 1 < dispatch.products.length ? ', ' : '');
|
||||||
const end = dispatch.endPoint.location;
|
});
|
||||||
|
|
||||||
let productsString = '';
|
const myDashArray =
|
||||||
dispatch.products.forEach((product: any, i: number) => {
|
dispatch.status === 'routeRequested' ? '20, 10' :
|
||||||
productsString += product.productTitle + (i + 1 < dispatch.products.length ? ', ' : '');
|
dispatch.status === 'completed' ? '1, 5' :
|
||||||
});
|
'0, 0';
|
||||||
|
|
||||||
const myDashArray =
|
return (
|
||||||
dispatch.status === 'routeRequested' ? '20, 10' :
|
<div key={index}>
|
||||||
dispatch.status === 'completed' ? '1, 5' :
|
<Marker position={[start[0], start[1]]}
|
||||||
'0, 0';
|
//icon={blackDotIcon}
|
||||||
|
>
|
||||||
return (
|
<Popup>{dispatch.startingPoint.name}</Popup>
|
||||||
<div key={index}>
|
</Marker>
|
||||||
<Marker position={[start[0], start[1]]}
|
<Marker position={[end[0], end[1]]}
|
||||||
//icon={blackDotIcon}
|
//icon={blackDotIcon}
|
||||||
>
|
>
|
||||||
<Popup>{dispatch.startingPoint.name}</Popup>
|
<Popup>{dispatch.endPoint.name}</Popup>
|
||||||
</Marker>
|
</Marker>
|
||||||
<Marker position={[end[0], end[1]]}
|
<Polyline
|
||||||
//icon={blackDotIcon}
|
positions={[[start[0], start[1]], [end[0], end[1]]]}
|
||||||
>
|
color="#000"
|
||||||
<Popup>{dispatch.endPoint.name}</Popup>
|
dashArray={myDashArray} />
|
||||||
</Marker>
|
</div>
|
||||||
<Polyline
|
);
|
||||||
positions={[[start[0], start[1]], [end[0], end[1]]]}
|
})}
|
||||||
color="#000"
|
</LayerGroup>
|
||||||
dashArray={myDashArray} />
|
}
|
||||||
</div>
|
|
||||||
);
|
|
||||||
})}
|
|
||||||
</LayerGroup> */}
|
|
||||||
</MapContainer >
|
</MapContainer >
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
@ -860,6 +860,11 @@
|
|||||||
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4"
|
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4"
|
||||||
integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==
|
integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==
|
||||||
|
|
||||||
|
"@types/geojson@*":
|
||||||
|
version "7946.0.14"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.14.tgz#319b63ad6df705ee2a65a73ef042c8271e696613"
|
||||||
|
integrity sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg==
|
||||||
|
|
||||||
"@types/hast@^3.0.0":
|
"@types/hast@^3.0.0":
|
||||||
version "3.0.4"
|
version "3.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/@types/hast/-/hast-3.0.4.tgz#1d6b39993b82cea6ad783945b0508c25903e15aa"
|
resolved "https://registry.yarnpkg.com/@types/hast/-/hast-3.0.4.tgz#1d6b39993b82cea6ad783945b0508c25903e15aa"
|
||||||
@ -867,6 +872,13 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
"@types/unist" "*"
|
"@types/unist" "*"
|
||||||
|
|
||||||
|
"@types/leaflet@^1.9.8":
|
||||||
|
version "1.9.8"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/leaflet/-/leaflet-1.9.8.tgz#32162a8eaf305c63267e99470b9603b5883e63e8"
|
||||||
|
integrity sha512-EXdsL4EhoUtGm2GC2ZYtXn+Fzc6pluVgagvo2VC1RHWToLGlTRwVYoDpqS/7QXa01rmDyBjJk3Catpf60VMkwg==
|
||||||
|
dependencies:
|
||||||
|
"@types/geojson" "*"
|
||||||
|
|
||||||
"@types/mdast@^4.0.0":
|
"@types/mdast@^4.0.0":
|
||||||
version "4.0.3"
|
version "4.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-4.0.3.tgz#1e011ff013566e919a4232d1701ad30d70cab333"
|
resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-4.0.3.tgz#1e011ff013566e919a4232d1701ad30d70cab333"
|
||||||
@ -1124,6 +1136,11 @@ astro@^4.5.13:
|
|||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
sharp "^0.32.6"
|
sharp "^0.32.6"
|
||||||
|
|
||||||
|
asynckit@^0.4.0:
|
||||||
|
version "0.4.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
|
||||||
|
integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
|
||||||
|
|
||||||
autoprefixer@^10.4.15:
|
autoprefixer@^10.4.15:
|
||||||
version "10.4.19"
|
version "10.4.19"
|
||||||
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.19.tgz#ad25a856e82ee9d7898c59583c1afeb3fa65f89f"
|
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.19.tgz#ad25a856e82ee9d7898c59583c1afeb3fa65f89f"
|
||||||
@ -1143,6 +1160,15 @@ available-typed-arrays@^1.0.7:
|
|||||||
dependencies:
|
dependencies:
|
||||||
possible-typed-array-names "^1.0.0"
|
possible-typed-array-names "^1.0.0"
|
||||||
|
|
||||||
|
axios@^1.6.8:
|
||||||
|
version "1.6.8"
|
||||||
|
resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.8.tgz#66d294951f5d988a00e87a0ffb955316a619ea66"
|
||||||
|
integrity sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==
|
||||||
|
dependencies:
|
||||||
|
follow-redirects "^1.15.6"
|
||||||
|
form-data "^4.0.0"
|
||||||
|
proxy-from-env "^1.1.0"
|
||||||
|
|
||||||
axobject-query@^4.0.0:
|
axobject-query@^4.0.0:
|
||||||
version "4.0.0"
|
version "4.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-4.0.0.tgz#04a4c90dce33cc5d606c76d6216e3b250ff70dab"
|
resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-4.0.0.tgz#04a4c90dce33cc5d606c76d6216e3b250ff70dab"
|
||||||
@ -1456,6 +1482,13 @@ color@^4.2.3:
|
|||||||
color-convert "^2.0.1"
|
color-convert "^2.0.1"
|
||||||
color-string "^1.9.0"
|
color-string "^1.9.0"
|
||||||
|
|
||||||
|
combined-stream@^1.0.8:
|
||||||
|
version "1.0.8"
|
||||||
|
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
|
||||||
|
integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
|
||||||
|
dependencies:
|
||||||
|
delayed-stream "~1.0.0"
|
||||||
|
|
||||||
comma-separated-tokens@^2.0.0:
|
comma-separated-tokens@^2.0.0:
|
||||||
version "2.0.3"
|
version "2.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz#4e89c9458acb61bc8fef19f4529973b2392839ee"
|
resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz#4e89c9458acb61bc8fef19f4529973b2392839ee"
|
||||||
@ -1584,6 +1617,11 @@ define-properties@^1.2.1:
|
|||||||
has-property-descriptors "^1.0.0"
|
has-property-descriptors "^1.0.0"
|
||||||
object-keys "^1.1.1"
|
object-keys "^1.1.1"
|
||||||
|
|
||||||
|
delayed-stream@~1.0.0:
|
||||||
|
version "1.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
|
||||||
|
integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
|
||||||
|
|
||||||
dequal@^2.0.0, dequal@^2.0.3:
|
dequal@^2.0.0, dequal@^2.0.3:
|
||||||
version "2.0.3"
|
version "2.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be"
|
resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be"
|
||||||
@ -1953,6 +1991,11 @@ flattie@^1.1.0:
|
|||||||
resolved "https://registry.yarnpkg.com/flattie/-/flattie-1.1.1.tgz#88182235723113667d36217fec55359275d6fe3d"
|
resolved "https://registry.yarnpkg.com/flattie/-/flattie-1.1.1.tgz#88182235723113667d36217fec55359275d6fe3d"
|
||||||
integrity sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==
|
integrity sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==
|
||||||
|
|
||||||
|
follow-redirects@^1.15.6:
|
||||||
|
version "1.15.6"
|
||||||
|
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b"
|
||||||
|
integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==
|
||||||
|
|
||||||
for-each@^0.3.3:
|
for-each@^0.3.3:
|
||||||
version "0.3.3"
|
version "0.3.3"
|
||||||
resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e"
|
resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e"
|
||||||
@ -1968,6 +2011,15 @@ foreground-child@^3.1.0:
|
|||||||
cross-spawn "^7.0.0"
|
cross-spawn "^7.0.0"
|
||||||
signal-exit "^4.0.1"
|
signal-exit "^4.0.1"
|
||||||
|
|
||||||
|
form-data@^4.0.0:
|
||||||
|
version "4.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452"
|
||||||
|
integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==
|
||||||
|
dependencies:
|
||||||
|
asynckit "^0.4.0"
|
||||||
|
combined-stream "^1.0.8"
|
||||||
|
mime-types "^2.1.12"
|
||||||
|
|
||||||
fraction.js@^4.3.7:
|
fraction.js@^4.3.7:
|
||||||
version "4.3.7"
|
version "4.3.7"
|
||||||
resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7"
|
resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7"
|
||||||
@ -3129,6 +3181,18 @@ micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5:
|
|||||||
braces "^3.0.2"
|
braces "^3.0.2"
|
||||||
picomatch "^2.3.1"
|
picomatch "^2.3.1"
|
||||||
|
|
||||||
|
mime-db@1.52.0:
|
||||||
|
version "1.52.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
|
||||||
|
integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
|
||||||
|
|
||||||
|
mime-types@^2.1.12:
|
||||||
|
version "2.1.35"
|
||||||
|
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
|
||||||
|
integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
|
||||||
|
dependencies:
|
||||||
|
mime-db "1.52.0"
|
||||||
|
|
||||||
mime@^3.0.0:
|
mime@^3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7"
|
resolved "https://registry.yarnpkg.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7"
|
||||||
@ -3588,6 +3652,11 @@ property-information@^6.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/property-information/-/property-information-6.5.0.tgz#6212fbb52ba757e92ef4fb9d657563b933b7ffec"
|
resolved "https://registry.yarnpkg.com/property-information/-/property-information-6.5.0.tgz#6212fbb52ba757e92ef4fb9d657563b933b7ffec"
|
||||||
integrity sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==
|
integrity sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==
|
||||||
|
|
||||||
|
proxy-from-env@^1.1.0:
|
||||||
|
version "1.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
|
||||||
|
integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
|
||||||
|
|
||||||
pump@^3.0.0:
|
pump@^3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
|
resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
|
||||||
@ -4601,9 +4670,9 @@ vfile@^6.0.0, vfile@^6.0.1:
|
|||||||
vfile-message "^4.0.0"
|
vfile-message "^4.0.0"
|
||||||
|
|
||||||
vite@^5.1.4:
|
vite@^5.1.4:
|
||||||
version "5.2.7"
|
version "5.2.8"
|
||||||
resolved "https://registry.yarnpkg.com/vite/-/vite-5.2.7.tgz#e1b8a985eb54fcb9467d7f7f009d87485016df6e"
|
resolved "https://registry.yarnpkg.com/vite/-/vite-5.2.8.tgz#a99e09939f1a502992381395ce93efa40a2844aa"
|
||||||
integrity sha512-k14PWOKLI6pMaSzAuGtT+Cf0YmIx12z9YGon39onaJNy8DLBfBJrzg9FQEmkAM5lpHBZs9wksWAsyF/HkpEwJA==
|
integrity sha512-OyZR+c1CE8yeHw5V5t59aXsUPPVTHMDjEZz8MgguLL/Q7NblxhZUlTu9xSPqlsUO/y+X7dlU05jdhvyycD55DA==
|
||||||
dependencies:
|
dependencies:
|
||||||
esbuild "^0.20.1"
|
esbuild "^0.20.1"
|
||||||
postcss "^8.4.38"
|
postcss "^8.4.38"
|
||||||
|
@ -13,6 +13,7 @@
|
|||||||
"generate:types": "cross-env PAYLOAD_CONFIG_PATH=src/payload.config.ts node -r tsconfig-paths/register node_modules/payload/dist/bin/index.js generate:types"
|
"generate:types": "cross-env PAYLOAD_CONFIG_PATH=src/payload.config.ts node -r tsconfig-paths/register node_modules/payload/dist/bin/index.js generate:types"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"cors": "^2.8.5",
|
||||||
"cross-env": "^7.0.3",
|
"cross-env": "^7.0.3",
|
||||||
"dotenv": "^16.3.1",
|
"dotenv": "^16.3.1",
|
||||||
"express": "^4.17.1",
|
"express": "^4.17.1",
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import express from "express";
|
import express from "express";
|
||||||
import payload from "payload";
|
import payload from "payload";
|
||||||
|
import cors from "cors";
|
||||||
|
|
||||||
require("dotenv").config();
|
require("dotenv").config();
|
||||||
const app = express();
|
const app = express();
|
||||||
@ -17,5 +18,11 @@ payload.init({
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
const corsOptions = {
|
||||||
|
origin: 'http://localhost:3000',
|
||||||
|
};
|
||||||
|
|
||||||
|
app.use(cors(corsOptions));
|
||||||
app.use("/media", express.static("media"));
|
app.use("/media", express.static("media"));
|
||||||
app.listen(process.env.PAYLOAD_PORT);
|
app.listen(process.env.PAYLOAD_PORT);
|
||||||
|
4307
payload/yarn.lock
4307
payload/yarn.lock
File diff suppressed because it is too large
Load Diff
355
sampleResponses/dispatches.json
Normal file
355
sampleResponses/dispatches.json
Normal file
@ -0,0 +1,355 @@
|
|||||||
|
{
|
||||||
|
"docs": [
|
||||||
|
{
|
||||||
|
"id": "660a8a0701275c2f8eb88344",
|
||||||
|
"dispatchesCode": "Tropical Tap Water",
|
||||||
|
"products": [
|
||||||
|
{
|
||||||
|
"id": "660a87b201275c2f8eb88302",
|
||||||
|
"productTitle": "Tote Bags",
|
||||||
|
"createdAt": "2024-04-01T10:08:50.417Z",
|
||||||
|
"updatedAt": "2024-04-01T10:08:50.417Z"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"typeOfTransportation": ["air"],
|
||||||
|
"courier": {
|
||||||
|
"id": "660a899501275c2f8eb8831b",
|
||||||
|
"name": "Daniel Aguilar Ruvalcaba",
|
||||||
|
"startingPoint": "Indonesia",
|
||||||
|
"destination": "Mexico",
|
||||||
|
"departureDate": "2024-04-15T06:00:00.000Z",
|
||||||
|
"arrivalDate": "2024-04-16T06:00:00.000Z",
|
||||||
|
"weightAllowance": 5,
|
||||||
|
"createdAt": "2024-04-01T10:16:53.455Z",
|
||||||
|
"updatedAt": "2024-04-01T10:16:53.455Z"
|
||||||
|
},
|
||||||
|
"timeSensitive": false,
|
||||||
|
"status": ["routeRequested"],
|
||||||
|
"createdAt": "2024-04-01T10:18:47.302Z",
|
||||||
|
"updatedAt": "2024-04-01T10:18:47.302Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "66028d2a01275c2f8eb87e3a",
|
||||||
|
"dispatchesCode": "HQL-571",
|
||||||
|
"products": [
|
||||||
|
{
|
||||||
|
"id": "66028ee601275c2f8eb87e93",
|
||||||
|
"productTitle": "Acts of Departure: Dispatches from The Last Emporium",
|
||||||
|
"createdAt": "2024-03-26T09:01:26.239Z",
|
||||||
|
"updatedAt": "2024-03-26T09:01:26.239Z"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"startingPoint": {
|
||||||
|
"id": "66028ec901275c2f8eb87e76",
|
||||||
|
"name": "Display Distribute",
|
||||||
|
"location": [114.19163986185993, 22.31656075733971],
|
||||||
|
"products": [
|
||||||
|
{
|
||||||
|
"id": "65b0cefaafcaf765bddf4527",
|
||||||
|
"productTitle": "Product one",
|
||||||
|
"createdAt": "2024-01-24T08:48:58.369Z",
|
||||||
|
"updatedAt": "2024-01-24T08:48:58.369Z"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"createdAt": "2024-03-26T09:00:57.371Z",
|
||||||
|
"updatedAt": "2024-03-26T09:00:57.371Z"
|
||||||
|
},
|
||||||
|
"endPoint": {
|
||||||
|
"id": "65b0cf25afcaf765bddf4540",
|
||||||
|
"name": "Retailer one",
|
||||||
|
"location": [2.45, 48.9],
|
||||||
|
"products": [
|
||||||
|
{
|
||||||
|
"id": "65b0cefaafcaf765bddf4527",
|
||||||
|
"productTitle": "Product one",
|
||||||
|
"createdAt": "2024-01-24T08:48:58.369Z",
|
||||||
|
"updatedAt": "2024-01-24T08:48:58.369Z"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"createdAt": "2024-01-24T08:49:41.635Z",
|
||||||
|
"updatedAt": "2024-01-24T08:49:41.635Z"
|
||||||
|
},
|
||||||
|
"typeOfTransportation": ["air"],
|
||||||
|
"courier": {
|
||||||
|
"id": "66028b3801275c2f8eb87e22",
|
||||||
|
"name": "Shuang",
|
||||||
|
"startingPoint": "Chongqing",
|
||||||
|
"destination": "Hong Kong",
|
||||||
|
"departureDate": "2024-03-26T16:00:00.000Z",
|
||||||
|
"arrivalDate": "2024-03-27T16:00:00.000Z",
|
||||||
|
"weightAllowance": 2,
|
||||||
|
"createdAt": "2024-03-26T08:45:44.841Z",
|
||||||
|
"updatedAt": "2024-03-26T09:04:46.105Z"
|
||||||
|
},
|
||||||
|
"status": ["completed"],
|
||||||
|
"createdAt": "2024-03-26T08:54:02.444Z",
|
||||||
|
"updatedAt": "2024-03-26T09:05:05.667Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "65db4a5af1b7d726bba2ebe4",
|
||||||
|
"dispatchesCode": "007",
|
||||||
|
"products": [
|
||||||
|
{
|
||||||
|
"id": "65b0cefaafcaf765bddf4527",
|
||||||
|
"productTitle": "Product one",
|
||||||
|
"createdAt": "2024-01-24T08:48:58.369Z",
|
||||||
|
"updatedAt": "2024-01-24T08:48:58.369Z"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"startingPoint": {
|
||||||
|
"id": "65b0cff2afcaf765bddf45a8",
|
||||||
|
"name": "Maker 3",
|
||||||
|
"location": [106, -6.2],
|
||||||
|
"products": [
|
||||||
|
{
|
||||||
|
"id": "65b0cefaafcaf765bddf4527",
|
||||||
|
"productTitle": "Product one",
|
||||||
|
"createdAt": "2024-01-24T08:48:58.369Z",
|
||||||
|
"updatedAt": "2024-01-24T08:48:58.369Z"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"createdAt": "2024-01-24T08:53:06.945Z",
|
||||||
|
"updatedAt": "2024-01-24T08:53:06.945Z"
|
||||||
|
},
|
||||||
|
"endPoint": {
|
||||||
|
"id": "65b0cf25afcaf765bddf4540",
|
||||||
|
"name": "Retailer one",
|
||||||
|
"location": [2.45, 48.9],
|
||||||
|
"products": [
|
||||||
|
{
|
||||||
|
"id": "65b0cefaafcaf765bddf4527",
|
||||||
|
"productTitle": "Product one",
|
||||||
|
"createdAt": "2024-01-24T08:48:58.369Z",
|
||||||
|
"updatedAt": "2024-01-24T08:48:58.369Z"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"createdAt": "2024-01-24T08:49:41.635Z",
|
||||||
|
"updatedAt": "2024-01-24T08:49:41.635Z"
|
||||||
|
},
|
||||||
|
"courier": {
|
||||||
|
"id": "65b0ced0afcaf765bddf4503",
|
||||||
|
"name": "Joost the Courier",
|
||||||
|
"createdAt": "2024-01-24T08:48:16.461Z",
|
||||||
|
"updatedAt": "2024-01-24T08:48:16.461Z"
|
||||||
|
},
|
||||||
|
"timeSensitive": true,
|
||||||
|
"status": ["routeRequested"],
|
||||||
|
"createdAt": "2024-02-25T14:10:34.727Z",
|
||||||
|
"updatedAt": "2024-02-25T19:24:29.046Z",
|
||||||
|
"typeOfTransportation": ["car"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "65b0d0aeafcaf765bddf4671",
|
||||||
|
"dispatchesCode": "004",
|
||||||
|
"products": [
|
||||||
|
{
|
||||||
|
"id": "65b0cefaafcaf765bddf4527",
|
||||||
|
"productTitle": "Product one",
|
||||||
|
"createdAt": "2024-01-24T08:48:58.369Z",
|
||||||
|
"updatedAt": "2024-01-24T08:48:58.369Z"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"startingPoint": {
|
||||||
|
"id": "65b0cfd9afcaf765bddf4596",
|
||||||
|
"name": "Maker Two",
|
||||||
|
"location": [0.128, 51.5],
|
||||||
|
"products": [
|
||||||
|
{
|
||||||
|
"id": "65b0cefaafcaf765bddf4527",
|
||||||
|
"productTitle": "Product one",
|
||||||
|
"createdAt": "2024-01-24T08:48:58.369Z",
|
||||||
|
"updatedAt": "2024-01-24T08:48:58.369Z"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"createdAt": "2024-01-24T08:52:41.057Z",
|
||||||
|
"updatedAt": "2024-01-24T08:52:41.057Z"
|
||||||
|
},
|
||||||
|
"endPoint": {
|
||||||
|
"id": "65b0cf7eafcaf765bddf4564",
|
||||||
|
"name": "Retailer 3",
|
||||||
|
"location": [9.19, 45.5],
|
||||||
|
"products": [
|
||||||
|
{
|
||||||
|
"id": "65b0cefaafcaf765bddf4527",
|
||||||
|
"productTitle": "Product one",
|
||||||
|
"createdAt": "2024-01-24T08:48:58.369Z",
|
||||||
|
"updatedAt": "2024-01-24T08:48:58.369Z"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"createdAt": "2024-01-24T08:51:10.008Z",
|
||||||
|
"updatedAt": "2024-01-24T08:51:10.008Z"
|
||||||
|
},
|
||||||
|
"courier": {
|
||||||
|
"id": "65b0ced0afcaf765bddf4503",
|
||||||
|
"name": "Joost the Courier",
|
||||||
|
"createdAt": "2024-01-24T08:48:16.461Z",
|
||||||
|
"updatedAt": "2024-01-24T08:48:16.461Z"
|
||||||
|
},
|
||||||
|
"status": ["routeRequested"],
|
||||||
|
"createdAt": "2024-01-24T08:56:14.210Z",
|
||||||
|
"updatedAt": "2024-01-24T08:56:14.210Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "65b0d099afcaf765bddf4640",
|
||||||
|
"dispatchesCode": "003",
|
||||||
|
"products": [
|
||||||
|
{
|
||||||
|
"id": "65b0cefaafcaf765bddf4527",
|
||||||
|
"productTitle": "Product one",
|
||||||
|
"createdAt": "2024-01-24T08:48:58.369Z",
|
||||||
|
"updatedAt": "2024-01-24T08:48:58.369Z"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"startingPoint": {
|
||||||
|
"id": "65b0cff2afcaf765bddf45a8",
|
||||||
|
"name": "Maker 3",
|
||||||
|
"location": [106, -6.2],
|
||||||
|
"products": [
|
||||||
|
{
|
||||||
|
"id": "65b0cefaafcaf765bddf4527",
|
||||||
|
"productTitle": "Product one",
|
||||||
|
"createdAt": "2024-01-24T08:48:58.369Z",
|
||||||
|
"updatedAt": "2024-01-24T08:48:58.369Z"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"createdAt": "2024-01-24T08:53:06.945Z",
|
||||||
|
"updatedAt": "2024-01-24T08:53:06.945Z"
|
||||||
|
},
|
||||||
|
"endPoint": {
|
||||||
|
"id": "65b0cf6bafcaf765bddf4552",
|
||||||
|
"name": "Retailer two",
|
||||||
|
"location": [-74, 40.7],
|
||||||
|
"products": [
|
||||||
|
{
|
||||||
|
"id": "65b0cefaafcaf765bddf4527",
|
||||||
|
"productTitle": "Product one",
|
||||||
|
"createdAt": "2024-01-24T08:48:58.369Z",
|
||||||
|
"updatedAt": "2024-01-24T08:48:58.369Z"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"createdAt": "2024-01-24T08:50:51.876Z",
|
||||||
|
"updatedAt": "2024-01-24T08:50:51.876Z"
|
||||||
|
},
|
||||||
|
"courier": {
|
||||||
|
"id": "65b0ced0afcaf765bddf4503",
|
||||||
|
"name": "Joost the Courier",
|
||||||
|
"createdAt": "2024-01-24T08:48:16.461Z",
|
||||||
|
"updatedAt": "2024-01-24T08:48:16.461Z"
|
||||||
|
},
|
||||||
|
"status": ["completed"],
|
||||||
|
"createdAt": "2024-01-24T08:55:53.951Z",
|
||||||
|
"updatedAt": "2024-01-24T08:55:53.951Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "65b0d07cafcaf765bddf460f",
|
||||||
|
"dispatchesCode": "002",
|
||||||
|
"products": [
|
||||||
|
{
|
||||||
|
"id": "65b0cefaafcaf765bddf4527",
|
||||||
|
"productTitle": "Product one",
|
||||||
|
"createdAt": "2024-01-24T08:48:58.369Z",
|
||||||
|
"updatedAt": "2024-01-24T08:48:58.369Z"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"startingPoint": {
|
||||||
|
"id": "65b0d00dafcaf765bddf45ba",
|
||||||
|
"name": "Fahad the Artist",
|
||||||
|
"location": [-6.84, 33.9],
|
||||||
|
"products": [
|
||||||
|
{
|
||||||
|
"id": "65b0cefaafcaf765bddf4527",
|
||||||
|
"productTitle": "Product one",
|
||||||
|
"createdAt": "2024-01-24T08:48:58.369Z",
|
||||||
|
"updatedAt": "2024-01-24T08:48:58.369Z"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"createdAt": "2024-01-24T08:53:33.106Z",
|
||||||
|
"updatedAt": "2024-01-24T08:53:33.106Z"
|
||||||
|
},
|
||||||
|
"endPoint": {
|
||||||
|
"id": "65b0cf25afcaf765bddf4540",
|
||||||
|
"name": "Retailer one",
|
||||||
|
"location": [2.45, 48.9],
|
||||||
|
"products": [
|
||||||
|
{
|
||||||
|
"id": "65b0cefaafcaf765bddf4527",
|
||||||
|
"productTitle": "Product one",
|
||||||
|
"createdAt": "2024-01-24T08:48:58.369Z",
|
||||||
|
"updatedAt": "2024-01-24T08:48:58.369Z"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"createdAt": "2024-01-24T08:49:41.635Z",
|
||||||
|
"updatedAt": "2024-01-24T08:49:41.635Z"
|
||||||
|
},
|
||||||
|
"courier": {
|
||||||
|
"id": "65b0ced0afcaf765bddf4503",
|
||||||
|
"name": "Joost the Courier",
|
||||||
|
"createdAt": "2024-01-24T08:48:16.461Z",
|
||||||
|
"updatedAt": "2024-01-24T08:48:16.461Z"
|
||||||
|
},
|
||||||
|
"status": ["routeRequested"],
|
||||||
|
"createdAt": "2024-01-24T08:55:24.797Z",
|
||||||
|
"updatedAt": "2024-01-24T08:55:24.797Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "65b0d05cafcaf765bddf45de",
|
||||||
|
"dispatchesCode": "Random-string-maybe-better-to-use-the-ID",
|
||||||
|
"products": [
|
||||||
|
{
|
||||||
|
"id": "65b0cefaafcaf765bddf4527",
|
||||||
|
"productTitle": "Product one",
|
||||||
|
"createdAt": "2024-01-24T08:48:58.369Z",
|
||||||
|
"updatedAt": "2024-01-24T08:48:58.369Z"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"startingPoint": {
|
||||||
|
"id": "65b0cfd9afcaf765bddf4596",
|
||||||
|
"name": "Maker Two",
|
||||||
|
"location": [0.128, 51.5],
|
||||||
|
"products": [
|
||||||
|
{
|
||||||
|
"id": "65b0cefaafcaf765bddf4527",
|
||||||
|
"productTitle": "Product one",
|
||||||
|
"createdAt": "2024-01-24T08:48:58.369Z",
|
||||||
|
"updatedAt": "2024-01-24T08:48:58.369Z"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"createdAt": "2024-01-24T08:52:41.057Z",
|
||||||
|
"updatedAt": "2024-01-24T08:52:41.057Z"
|
||||||
|
},
|
||||||
|
"endPoint": {
|
||||||
|
"id": "65b0cf7eafcaf765bddf4564",
|
||||||
|
"name": "Retailer 3",
|
||||||
|
"location": [9.19, 45.5],
|
||||||
|
"products": [
|
||||||
|
{
|
||||||
|
"id": "65b0cefaafcaf765bddf4527",
|
||||||
|
"productTitle": "Product one",
|
||||||
|
"createdAt": "2024-01-24T08:48:58.369Z",
|
||||||
|
"updatedAt": "2024-01-24T08:48:58.369Z"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"createdAt": "2024-01-24T08:51:10.008Z",
|
||||||
|
"updatedAt": "2024-01-24T08:51:10.008Z"
|
||||||
|
},
|
||||||
|
"courier": {
|
||||||
|
"id": "65b0ced0afcaf765bddf4503",
|
||||||
|
"name": "Joost the Courier",
|
||||||
|
"createdAt": "2024-01-24T08:48:16.461Z",
|
||||||
|
"updatedAt": "2024-01-24T08:48:16.461Z"
|
||||||
|
},
|
||||||
|
"status": ["inTransit"],
|
||||||
|
"createdAt": "2024-01-24T08:54:52.811Z",
|
||||||
|
"updatedAt": "2024-01-24T08:54:52.811Z"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"totalDocs": 7,
|
||||||
|
"limit": 10,
|
||||||
|
"totalPages": 1,
|
||||||
|
"page": 1,
|
||||||
|
"pagingCounter": 1,
|
||||||
|
"hasPrevPage": false,
|
||||||
|
"hasNextPage": false,
|
||||||
|
"prevPage": null,
|
||||||
|
"nextPage": null
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user