This commit is contained in:
parent
a2303c215e
commit
3d0c9a5719
@ -41,8 +41,9 @@ export const load = (id: string) =>
|
||||
return res;
|
||||
});
|
||||
|
||||
export const save = (id: string, v: journey) =>
|
||||
fetch("/api/" + id, { method: "post", body: JSON.stringify(v) })
|
||||
export const save = (id: string, v: journey) =>{
|
||||
v.version = v.version +1
|
||||
return fetch("/api/" + id, { method: "post", body: JSON.stringify(v) })
|
||||
.then((res) => {
|
||||
if (!res.ok) throw new Error("Error " + res.statusText);
|
||||
return res.json();
|
||||
@ -50,6 +51,7 @@ export const save = (id: string, v: journey) =>
|
||||
.then((_res) => {
|
||||
console.log("Saved...");
|
||||
});
|
||||
}
|
||||
|
||||
export const query_nominatim = (
|
||||
q: string,
|
||||
|
@ -37,6 +37,7 @@ declare global {
|
||||
|
||||
interface journey {
|
||||
fmt_ver: number
|
||||
version: number
|
||||
title: string
|
||||
main: leg[]
|
||||
}
|
||||
|
@ -10,6 +10,7 @@ function migrate_A_to_0(e: journey): journey {
|
||||
v.travel = v.travel || [];
|
||||
v.day_title = typeof (v.day_title) == "string" ? [v.day_title] : [];
|
||||
})
|
||||
e.version = e.version | 0;
|
||||
console.log(e)
|
||||
return e;
|
||||
}
|
||||
|
@ -72,18 +72,18 @@ export default function (server, opts, done) {
|
||||
});
|
||||
|
||||
server.post("/:id", async (req, reply) => {
|
||||
if (req.params.id == undefined)
|
||||
if (req.params.id == undefined )
|
||||
return reply.code(400).send({ error: "No ID query parameter" });
|
||||
|
||||
server.level.db.put(req.params.id, req.body, (err) => {
|
||||
if (err) {
|
||||
console.warn(err);
|
||||
reply.code(500).send({ error: "Error with DB" });
|
||||
} else {
|
||||
reply.send({ content: "ok" });
|
||||
return server.level.db.get(req.params.id).then(r=>r.version>=0?r.version:-1).catch(_=>-1).then(db_ver=>{
|
||||
if(db_ver+1 == req.body.version){
|
||||
return server.level.db.put(req.params.id, req.body)
|
||||
.then(_=>reply.send({ content: "ok" }))
|
||||
.catch(_err=>reply.code(500).send({ error: "Error with DB" }));
|
||||
}else{
|
||||
return reply.code(409).send({ error: "Old version, please refresh" });
|
||||
}
|
||||
});
|
||||
return reply;
|
||||
})
|
||||
});
|
||||
|
||||
done();
|
||||
|
Loading…
x
Reference in New Issue
Block a user