From 1acbfe36b06b0039aa9a57a994d4c0a9388071c7 Mon Sep 17 00:00:00 2001 From: csawatzky Date: Mon, 21 Apr 2025 13:58:37 -0600 Subject: [PATCH] update as in the grain bag api --- src/contract/contractTransactionTable.tsx | 2 +- src/grain/GrainTransaction.tsx | 2 +- src/grainBag/grainBagInventoryGraph.tsx | 5 +-- src/grainBag/grainBagSettings.tsx | 8 ++--- src/maps/mapDrawers/GrainBagDrawer.tsx | 7 ++-- .../mapObjectControllers/AgMapController.tsx | 6 ++-- .../bulkEditForms/bulkGrainBagSettings.tsx | 5 +-- src/pages/grainBag.tsx | 4 +-- src/providers/pond/grainBagAPI.tsx | 36 +++++++++++-------- 9 files changed, 42 insertions(+), 33 deletions(-) diff --git a/src/contract/contractTransactionTable.tsx b/src/contract/contractTransactionTable.tsx index 11fc465..4574bb7 100644 --- a/src/contract/contractTransactionTable.tsx +++ b/src/contract/contractTransactionTable.tsx @@ -104,7 +104,7 @@ export default function ContractTransactionTable(props: Props) { }); break; case pond.ObjectType.OBJECT_TYPE_GRAIN_BAG: - bagAPI.getGrainBag(transaction.transaction.fromKey).then(resp => { + bagAPI.getGrainBag(transaction.transaction.fromKey, as).then(resp => { if (resp.data.grainBag) { let bag = GrainBag.create(resp.data.grainBag); setTransactionSource(bag); diff --git a/src/grain/GrainTransaction.tsx b/src/grain/GrainTransaction.tsx index 469cbc7..2777f9c 100644 --- a/src/grain/GrainTransaction.tsx +++ b/src/grain/GrainTransaction.tsx @@ -147,7 +147,7 @@ export default function GrainTransaction(props: Props) { if (!bagsLoading) { setBagsLoading(true); grainBagAPI - .listGrainBags(0, 0) + .listGrainBags(0, 0, undefined, undefined, undefined, undefined, undefined, undefined, undefined, as) .then(resp => { //let sourceOps: Option[] = sourceOptions let bagOps: Option[] = []; diff --git a/src/grainBag/grainBagInventoryGraph.tsx b/src/grainBag/grainBagInventoryGraph.tsx index e42869a..305e84b 100644 --- a/src/grainBag/grainBagInventoryGraph.tsx +++ b/src/grainBag/grainBagInventoryGraph.tsx @@ -4,7 +4,7 @@ import GrainDescriber from "grain/GrainDescriber"; import { GrainBag } from "models/GrainBag"; import moment, { Moment } from "moment"; import { pond } from "protobuf-ts/pond"; -import { useGrainBagAPI, useSnackbar } from "providers"; +import { useGlobalState, useGrainBagAPI, useSnackbar } from "providers"; import { useEffect, useState } from "react"; import { getGrainUnit } from "utils"; @@ -21,12 +21,13 @@ export default function GrainBagInventoryGraph(props: Props) { const [data, setData] = useState([]); const [loadingData, setLoadingData] = useState(false); const { openSnack } = useSnackbar(); + const [{as}] = useGlobalState(); useEffect(() => { if (grainBag.key() && !loadingData) { setLoadingData(true); grainBagAPI - .listHistory(grainBag.key(), 500, 0, startDate.toISOString(), endDate.toISOString()) + .listHistory(grainBag.key(), 500, 0, startDate.toISOString(), endDate.toISOString(), as) .then(resp => { let barData: BarData[] = []; let lastBushels = 0; diff --git a/src/grainBag/grainBagSettings.tsx b/src/grainBag/grainBagSettings.tsx index 2ef7a58..c5cb663 100644 --- a/src/grainBag/grainBagSettings.tsx +++ b/src/grainBag/grainBagSettings.tsx @@ -48,7 +48,7 @@ export default function GrainBagSettings(props: Props) { const [bagLengthM, setBagLengthM] = useState(0); const [bagDiameterDisplay, setBagDiameterDisplay] = useState(0); const [bagLengthDispla, setBagLengthDisplay] = useState(0); - const [{ user }] = useGlobalState(); + const [{ user, as }] = useGlobalState(); const [isCustom, setIsCustom] = useState(false); const [customType, setCustomType] = useState(""); const [supportedGrainType, setSupportedGrainType] = useState(pond.Grain.GRAIN_INVALID); @@ -104,7 +104,7 @@ export default function GrainBagSettings(props: Props) { const removeGrainBag = () => { if (!grainBag) return; grainBagAPI - .removeGrainBag(grainBag.key()) + .removeGrainBag(grainBag.key(), as) .then(resp => { openSnack("Removed Grain Bag"); close(); @@ -138,7 +138,7 @@ export default function GrainBagSettings(props: Props) { setGrainUpdate(true); } else { grainBagAPI - .updateGrainBag(grainBag.key(), bagName, grainBag.settings) + .updateGrainBag(grainBag.key(), bagName, grainBag.settings, as) .then(resp => { openSnack("Grain Bag Updated"); let updatedBag = clone(grainBag); @@ -170,7 +170,7 @@ export default function GrainBagSettings(props: Props) { } grainBagAPI - .addGrainBag(bagName, settings) + .addGrainBag(bagName, settings, as) .then(resp => { openSnack("New grain bag added"); let newBag = GrainBag.create( diff --git a/src/maps/mapDrawers/GrainBagDrawer.tsx b/src/maps/mapDrawers/GrainBagDrawer.tsx index 4f1e9ab..d2bec53 100644 --- a/src/maps/mapDrawers/GrainBagDrawer.tsx +++ b/src/maps/mapDrawers/GrainBagDrawer.tsx @@ -4,7 +4,7 @@ import MapMarkerSettings from "maps/MapMarkerSettings"; import { GrainBag as BagModel } from "models/GrainBag"; import GrainBag from "pages/grainBag"; import { pond } from "protobuf-ts/pond"; -import { useGrainBagAPI, useSnackbar } from "providers"; +import { useGlobalState, useGrainBagAPI, useSnackbar } from "providers"; import React, { useEffect, useState } from "react"; interface Props { @@ -23,6 +23,7 @@ export default function GrainBagDrawer(props: Props) { const [openMarkerSettings, setOpenMarkerSettings] = useState(false); const bagAPI = useGrainBagAPI(); const { openSnack } = useSnackbar(); + const [{as}] = useGlobalState(); useEffect(() => { let b = grainBags.get(selectedBag); @@ -99,7 +100,7 @@ export default function GrainBagDrawer(props: Props) { settings.startLocation = undefined; settings.endLocation = undefined; bagAPI - .updateGrainBag(bag.key(), bag.name(), settings) + .updateGrainBag(bag.key(), bag.name(), settings, as) .then(resp => { openSnack("Grain bag location removed"); removeMarker(bag.key()); @@ -133,7 +134,7 @@ export default function GrainBagDrawer(props: Props) { let settings = bag.settings; settings.theme = newTheme; bagAPI - .updateGrainBag(bag.key(), bag.name(), settings) + .updateGrainBag(bag.key(), bag.name(), settings, as) .then(resp => { openSnack("marker settings updated"); updateMarker(bag.key(), settings); diff --git a/src/maps/mapObjectControllers/AgMapController.tsx b/src/maps/mapObjectControllers/AgMapController.tsx index a326d33..885afe9 100644 --- a/src/maps/mapObjectControllers/AgMapController.tsx +++ b/src/maps/mapObjectControllers/AgMapController.tsx @@ -304,7 +304,7 @@ import { Result } from "@mapbox/mapbox-gl-geocoder"; const loadGrainBags = useCallback(() => { grainBagAPI - .listGrainBags(100, 0) + .listGrainBags(100, 0, undefined, undefined, undefined, undefined, undefined, undefined, undefined, as) .then(resp => { let bags: Map = new Map(); let bagOp: BagModel[] = []; @@ -367,7 +367,7 @@ import { Result } from "@mapbox/mapbox-gl-geocoder"; .catch(err => { openSnack("Failed to load Grain Bags"); }); - }, [grainBagAPI, openSnack]); // eslint-disable-line react-hooks/exhaustive-deps + }, [grainBagAPI, openSnack, as]); // eslint-disable-line react-hooks/exhaustive-deps const loadYards = useCallback(() => { let yardMap: Map = new Map(); @@ -1286,7 +1286,7 @@ import { Result } from "@mapbox/mapbox-gl-geocoder"; const updateBag = (bag: BagModel) => { //update the bag grainBagAPI - .updateGrainBag(bag.key(), bag.name(), bag.settings) + .updateGrainBag(bag.key(), bag.name(), bag.settings, as) .then(resp => { openSnack("Grain Bag location set"); //if the update succeeded than update the geo state and ref diff --git a/src/objects/bulkEditForms/bulkGrainBagSettings.tsx b/src/objects/bulkEditForms/bulkGrainBagSettings.tsx index 8e4a89c..5d226f6 100644 --- a/src/objects/bulkEditForms/bulkGrainBagSettings.tsx +++ b/src/objects/bulkEditForms/bulkGrainBagSettings.tsx @@ -3,7 +3,7 @@ import SearchSelect, { Option } from "common/SearchSelect"; import { GrainOptions } from "grain"; import { GrainBag } from "models/GrainBag"; import { pond } from "protobuf-ts/pond"; -import { useGrainBagAPI, useSnackbar } from "providers"; +import { useGlobalState, useGrainBagAPI, useSnackbar } from "providers"; import React, { useState } from "react"; import { getDistanceUnit } from "utils"; @@ -28,6 +28,7 @@ export default function BulkGrainBagSettings(props: Props) { const [bushels, setBushels] = useState(); const [fillDate, setFillDate] = useState(); const [initialMoisture, setInitialMoisture] = useState(); + const [{as}] = useGlobalState(); const convertedDistance = (enteredDistance: number) => { if (getDistanceUnit() === pond.DistanceUnit.DISTANCE_UNIT_FEET) { @@ -60,7 +61,7 @@ export default function BulkGrainBagSettings(props: Props) { }); grainBagAPI - .bulkUpdateGrainBags(bagsToUpdate) + .bulkUpdateGrainBags(bagsToUpdate, as) .then(resp => { if (resp.data.successfull > 0) { refreshCallback(true); diff --git a/src/pages/grainBag.tsx b/src/pages/grainBag.tsx index eef6087..ca502b3 100644 --- a/src/pages/grainBag.tsx +++ b/src/pages/grainBag.tsx @@ -39,7 +39,7 @@ export default function GrainBag(props: Props) { useEffect(() => { grainBagAPI - .getGrainBag(bagID) + .getGrainBag(bagID, as) .then(resp => { if (resp.data.grainBag) { setGrainBag(IGrainBag.create(resp.data.grainBag)); @@ -48,7 +48,7 @@ export default function GrainBag(props: Props) { .catch(err => { openSnack("There was a problem loading the Grain Bag"); }); - }, [bagID, grainBagAPI, openSnack]); + }, [bagID, grainBagAPI, openSnack, as]); useEffect(() => { let key = bagID; diff --git a/src/providers/pond/grainBagAPI.tsx b/src/providers/pond/grainBagAPI.tsx index f8d3e29..34c471d 100644 --- a/src/providers/pond/grainBagAPI.tsx +++ b/src/providers/pond/grainBagAPI.tsx @@ -9,7 +9,8 @@ import { GrainBag } from "models/GrainBag"; export interface IGrainBagInterface { addGrainBag: ( name: string, - settings: pond.GrainBagSettings + settings: pond.GrainBagSettings, + as?: string ) => Promise>; listGrainBags: ( limit: number, @@ -20,24 +21,28 @@ export interface IGrainBagInterface { keys?: string[], types?: string[], numerical?: boolean, - specificUser?: string + specificUser?: string, + as?: string ) => Promise>; updateGrainBag: ( key: string, name: string, - settings: pond.GrainBagSettings + settings: pond.GrainBagSettings, + as?: string ) => Promise>; bulkUpdateGrainBags: ( - bags: pond.GrainBag[] + bags: pond.GrainBag[], + as?: string ) => Promise>; - getGrainBag: (key: string) => Promise>; - removeGrainBag: (key: string) => Promise>; + getGrainBag: (key: string, as?: string) => Promise>; + removeGrainBag: (key: string, as?: string) => Promise>; listHistory: ( id: string, limit: number, offset: number, start?: string, - end?: string + end?: string, + as?: string ) => Promise>; } @@ -48,9 +53,9 @@ interface Props {} export default function GrainBagProvider(props: PropsWithChildren) { const { children } = props; const { get, del, post, put } = useHTTP(); - const [{ as }] = useGlobalState(); + //const [{ as }] = useGlobalState(); - const addGrainBag = (name: string, settings: pond.GrainBagSettings) => { + const addGrainBag = (name: string, settings: pond.GrainBagSettings, as?: string) => { if (as) { return post( pondURL("/grainbags?name=" + name + "&as=" + as), @@ -69,7 +74,8 @@ export default function GrainBagProvider(props: PropsWithChildren) { keys?: string[], types?: string[], numerical?: boolean, - specificUser?: string + specificUser?: string, + as?: string ) => { let asText = ""; if (as) asText = "&as=" + as; @@ -91,7 +97,7 @@ export default function GrainBagProvider(props: PropsWithChildren) { ); }; - const updateGrainBag = (key: string, name: string, settings: pond.GrainBagSettings) => { + const updateGrainBag = (key: string, name: string, settings: pond.GrainBagSettings, as?: string) => { if (as) { return put( pondURL("/grainbags/" + key + "?as=" + as + "&name=" + name), @@ -104,7 +110,7 @@ export default function GrainBagProvider(props: PropsWithChildren) { ); }; - const bulkUpdateGrainBags = (bags: pond.GrainBag[]) => { + const bulkUpdateGrainBags = (bags: pond.GrainBag[], as?: string) => { if (as) return put(pondURL("/bulkGrainBags/update?as=" + as), { bags: bags @@ -112,21 +118,21 @@ export default function GrainBagProvider(props: PropsWithChildren) { return put(pondURL("/bulkGrainBags/update"), { bags: bags }); }; - const removeGrainBag = (key: string) => { + const removeGrainBag = (key: string, as?: string) => { if (as) { return del(pondURL("/grainbags/" + key + "?as=" + as)); } return del(pondURL("/grainbags/" + key + "?as=" + as)); }; - const getGrainBag = (key: string) => { + const getGrainBag = (key: string, as?: string) => { if (as) { return get(pondURL("/grainbags/" + key + "?as=" + as)); } return get(pondURL("/grainbags/" + key)); }; - const listHistory = (id: string, limit: number, offset: number, start?: string, end?: string) => { + const listHistory = (id: string, limit: number, offset: number, start?: string, end?: string, as?: string) => { let url = pondURL( "/grainbags/" + id +