+page.svelte (3172B)
1 <script> 2 import { db, route } from "$lib/utils/app"; 3 import { 4 geolocation_fields_from_point, 5 geolocation_fields_from_point_with_geocode 6 } from "$lib/utils/geo/lib"; 7 import { FarmsAdd } from "@radroots/apps-lib-pwa"; 8 import { nostr_pubkey } from "@radroots/apps-nostr"; 9 import { d_tag_create, handle_err, throw_err } from "@radroots/utils"; 10 </script> 11 12 <FarmsAdd 13 basis={{ 14 callback_route: { route: `/farms` }, 15 on_submit: async ({ payload }) => { 16 try { 17 console.log(JSON.stringify(payload, null, 4), `payload`); 18 19 const pubkey_val = $nostr_pubkey; 20 if (!pubkey_val) throw_err(`missing_nostr_pubkey`); 21 const farm_d_tag = d_tag_create(); 22 const farm_create = await db.farm_create({ 23 d_tag: farm_d_tag, 24 pubkey: pubkey_val, 25 name: payload.farm_name, 26 about: payload.farm_about, 27 website: payload.farm_website, 28 }); 29 console.log( 30 JSON.stringify(farm_create, null, 4), 31 `farm_create`, 32 ); 33 if ("err" in farm_create) throw_err(farm_create); 34 if (payload.geolocation_point) { 35 const location_fields = payload.geocode_result 36 ? await geolocation_fields_from_point_with_geocode({ 37 geoc_r: payload.geocode_result, 38 geol_p: payload.geolocation_point, 39 label: payload.farm_location_label, 40 }) 41 : await geolocation_fields_from_point({ 42 geol_p: payload.geolocation_point, 43 label: payload.farm_location_label, 44 }); 45 if ("err" in location_fields) throw_err(location_fields); 46 console.log( 47 JSON.stringify(location_fields, null, 4), 48 `location_fields`, 49 ); 50 const gcs_location_create = 51 await db.gcs_location_create(location_fields); 52 if ("err" in gcs_location_create) 53 throw_err(gcs_location_create); 54 const farm_gcs_location_create = 55 await db.farm_gcs_location_create({ 56 farm_id: farm_create.result.id, 57 gcs_location_id: gcs_location_create.result.id, 58 role: `primary`, 59 }); 60 console.log( 61 JSON.stringify(farm_gcs_location_create, null, 4), 62 `farm_gcs_location_create`, 63 ); 64 if ("err" in farm_gcs_location_create) 65 throw_err(farm_gcs_location_create); 66 } 67 await route(`/farms`); 68 } catch (e) { 69 handle_err(e, `on_submit`); 70 } 71 }, 72 }} 73 />