feat: use drink api in front and more #16
47
front/src/pages/maps/save_poi.astro
Normal file
47
front/src/pages/maps/save_poi.astro
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
---
|
||||||
|
import AstroUtils from "libs/AstroUtils";
|
||||||
|
import type { RecordModel } from "pocketbase";
|
||||||
|
|
||||||
|
|
||||||
|
const pb = Astro.locals.pb
|
||||||
|
|
||||||
|
if(!pb.authStore.isValid){
|
||||||
|
return Astro.redirect("/account")
|
||||||
|
}
|
||||||
|
|
||||||
|
await AstroUtils.wrap(async () => {
|
||||||
|
if (Astro.request.method !== 'POST') {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
const poiJson = await Astro.request.json()
|
||||||
|
|
||||||
|
const data = {Poi: poiJson.Poi, Poi_id:poiJson.Poi.id}
|
||||||
|
|
||||||
|
let record: RecordModel
|
||||||
|
|
||||||
|
try {
|
||||||
|
record = await pb.collection('POI').create(data);
|
||||||
|
} catch (error) {
|
||||||
|
try{
|
||||||
|
record = await pb.collection('POI').getFirstListItem(`Poi_id="${poiJson.Poi.id}"`)
|
||||||
|
} catch (error2) {
|
||||||
|
console.log("error 1 :")
|
||||||
|
console.log(error)
|
||||||
|
console.log("error 2 :")
|
||||||
|
console.log(error2)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
if(poiJson.save){
|
||||||
|
pb.collection('user_poi').create({owner: pb.authStore.model!.id, poi_list:record!.id})
|
||||||
|
}else{
|
||||||
|
record = await pb.collection('user_poi').getFirstListItem(`poi_list="${record!.id}"&&owner="${pb.authStore.model!.id}"`)
|
||||||
|
pb.collection('user_poi').delete(record.id)
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.log(error)
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
---
|
Loading…
x
Reference in New Issue
Block a user