web


git clone https://radroots.dev/git/web.git
Log | Files | Refs | Submodules | README | LICENSE

+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 />