Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lf 4694 create get endpoint to check if an ensemble addon exists b #3671

20 changes: 20 additions & 0 deletions packages/api/src/controllers/farmAddonController.js
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,26 @@ const farmAddonController = {
});
}
},
getFarmAddon() {
return async (req, res) => {
try {
const { farm_id } = req.headers;
const { addon_partner_id } = req.query;
const rows = await FarmAddonModel.query()
.where({ farm_id, addon_partner_id })
.skipUndefined();
Copy link
Collaborator

@kathyavini kathyavini Feb 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

.skipUndefined() is a nice inclusion and should probably be our default!

if (!rows.length) {
return res.sendStatus(404);
}
return res.sendStatus(200);
} catch (error) {
console.error(error);
return res.status(500).json({
error,
});
}
};
},
};

export default farmAddonController;
2 changes: 2 additions & 0 deletions packages/api/src/routes/farmAddonRoute.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,4 +27,6 @@ router.post(
FarmAddonController.addFarmAddon,
);

router.get('/', checkScope(['get:farm_addon']), FarmAddonController.getFarmAddon());

export default router;
209 changes: 107 additions & 102 deletions packages/webapp/src/routes/index.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -54,85 +54,87 @@ const Prices = React.lazy(() => import('../containers/Insights/Prices'));
const ExpiredTokenScreen = React.lazy(() => import('../containers/ExpiredTokenScreen'));
Copy link
Collaborator

@kathyavini kathyavini Jan 31, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh no the pre-commit linting diff returns 🤣 We really have to work that out.

But also I can't figure out why is there a diff on webapp routes in this PR? What's the actual (non-linting) diff here?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Its on the merge commit... so maybe merge commits count as touching files? There is no diff from me... Linting or merge process must be undoing or redoing same thing as Sayakas ... I think I did just redo a pnpm i also so maybe there was an update to the linter rule? I have zero personal vscode plugins like prettier installed so it wouldn't be that.

Copy link
Collaborator

@kathyavini kathyavini Jan 31, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay, I guess it's getting committed, then! 😂

I'll just ping @antsgar because it looks like it was her merge commit that commited the current state. Anto you weren't at our tech daily where we looked at this based on Sayaka's PR with the same diff, but the ESLint rule running on commit is making the diff on the right, while prettier linting (format on save) according to our .prettierrc does the diff on the left. So if you work on this file you get the left diff, and when you run the pre-commit hook it will transform to the right -- kind of obnoxious 😝 Is it possible your pre-commit lint was off at one point doing the unused animals bit?

Anyway I think it would better if prettier + eslint weren't at odds in this way -- I think there should be some way to make prettier eslint aware (or vice versa) that we aren't implementing properly but in any case let's commit and sorry @SayakaOno I made you revert this earlier 😅

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, thank you for finding that commit! I'm making some changes to the file again, and I'll leave it this time! 😂

Copy link
Collaborator

@antsgar antsgar Feb 4, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh no, how annoying 😓 I always get the diff on the left no matter what, even if I change something on this file and format on save and then commit it

const Map = React.lazy(() => import('../containers/Map'));
const MapVideo = React.lazy(() => import('../components/Map/Videos'));
const PostFarmSiteBoundaryForm = React.lazy(() =>
import(
'../containers/LocationDetails/AreaDetails/FarmSiteBoundaryDetailForm/PostFarmSiteBoundary'
),
const PostFarmSiteBoundaryForm = React.lazy(
() =>
import(
'../containers/LocationDetails/AreaDetails/FarmSiteBoundaryDetailForm/PostFarmSiteBoundary'
),
);
const FarmSiteBoundaryDetails = React.lazy(() => import('./FarmSiteBoundaryDetailsRoutes'));

const PostFieldForm = React.lazy(() =>
import('../containers/LocationDetails/AreaDetails/FieldDetailForm/PostField'),
const PostFieldForm = React.lazy(
() => import('../containers/LocationDetails/AreaDetails/FieldDetailForm/PostField'),
);
const FieldDetails = React.lazy(() => import('./FieldDetailsRoutes'));

const PostGardenForm = React.lazy(() =>
import('../containers/LocationDetails/AreaDetails/GardenDetailForm/PostGarden'),
const PostGardenForm = React.lazy(
() => import('../containers/LocationDetails/AreaDetails/GardenDetailForm/PostGarden'),
);
const GardenDetails = React.lazy(() => import('./GardenDetailsRoutes'));

const PostGateForm = React.lazy(() =>
import('../containers/LocationDetails/PointDetails/GateDetailForm/PostGate'),
const PostGateForm = React.lazy(
() => import('../containers/LocationDetails/PointDetails/GateDetailForm/PostGate'),
);
const GateDetails = React.lazy(() => import('./GateDetailsRoutes'));

const PostWaterValveForm = React.lazy(() =>
import('../containers/LocationDetails/PointDetails/WaterValveDetailForm/PostWaterValve'),
const PostWaterValveForm = React.lazy(
() => import('../containers/LocationDetails/PointDetails/WaterValveDetailForm/PostWaterValve'),
);
const WaterValveDetails = React.lazy(() => import('./WaterValveDetailsRoutes'));
const EditSensor = React.lazy(() =>
import('../containers/LocationDetails/PointDetails/SensorDetail/EditSensor'),
const EditSensor = React.lazy(
() => import('../containers/LocationDetails/PointDetails/SensorDetail/EditSensor'),
);

const PostBarnForm = React.lazy(() =>
import('../containers/LocationDetails/AreaDetails/BarnDetailForm/PostBarn'),
const PostBarnForm = React.lazy(
() => import('../containers/LocationDetails/AreaDetails/BarnDetailForm/PostBarn'),
);
const BarnDetails = React.lazy(() => import('./BarnDetailsRoutes'));

const PostNaturalAreaForm = React.lazy(() =>
import('../containers/LocationDetails/AreaDetails/NaturalAreaDetailForm/PostNaturalArea'),
const PostNaturalAreaForm = React.lazy(
() => import('../containers/LocationDetails/AreaDetails/NaturalAreaDetailForm/PostNaturalArea'),
);
const NaturalAreaDetails = React.lazy(() => import('./NaturalAreaDetailsRoutes'));

const PostSurfaceWaterForm = React.lazy(() =>
import('../containers/LocationDetails/AreaDetails/SurfaceWaterDetailForm/PostSurfaceWater'),
const PostSurfaceWaterForm = React.lazy(
() => import('../containers/LocationDetails/AreaDetails/SurfaceWaterDetailForm/PostSurfaceWater'),
);
const SurfaceWaterDetails = React.lazy(() => import('./SurfaceWaterDetailsRoutes'));

const PostResidenceForm = React.lazy(() =>
import('../containers/LocationDetails/AreaDetails/ResidenceDetailForm/PostResidence'),
const PostResidenceForm = React.lazy(
() => import('../containers/LocationDetails/AreaDetails/ResidenceDetailForm/PostResidence'),
);
const ResidenceDetails = React.lazy(() => import('./ResidenceDetailsRoutes'));

const PostCeremonialForm = React.lazy(() =>
import('../containers/LocationDetails/AreaDetails/CeremonialAreaDetailForm/PostCeremonialArea'),
const PostCeremonialForm = React.lazy(
() =>
import('../containers/LocationDetails/AreaDetails/CeremonialAreaDetailForm/PostCeremonialArea'),
);
const CeremonialAreaDetails = React.lazy(() => import('./CeremonialAreaDetailsRoutes'));

const PostGreenhouseForm = React.lazy(() =>
import('../containers/LocationDetails/AreaDetails/GreenhouseDetailForm/PostGreenhouse'),
const PostGreenhouseForm = React.lazy(
() => import('../containers/LocationDetails/AreaDetails/GreenhouseDetailForm/PostGreenhouse'),
);
const GreenhouseDetails = React.lazy(() => import('./GreenhouseDetailsRoutes'));

const CropManagement = React.lazy(() => import('../containers/Crop/CropManagement'));
const CropDetail = React.lazy(() => import('../containers/Crop/CropDetail/index'));

const PostFenceForm = React.lazy(() =>
import('../containers/LocationDetails/LineDetails/FenceDetailForm/PostFence'),
const PostFenceForm = React.lazy(
() => import('../containers/LocationDetails/LineDetails/FenceDetailForm/PostFence'),
);
const FenceDetails = React.lazy(() => import('./FenceDetailsRoutes'));

const PostBufferZoneForm = React.lazy(() =>
import('../containers/LocationDetails/LineDetails/BufferZoneDetailForm/PostBufferZone'),
const PostBufferZoneForm = React.lazy(
() => import('../containers/LocationDetails/LineDetails/BufferZoneDetailForm/PostBufferZone'),
);
const BufferZoneDetails = React.lazy(() => import('./BufferZoneDetailsRoutes'));

const PostWatercourseForm = React.lazy(() =>
import('../containers/LocationDetails/LineDetails/WatercourseDetailForm/PostWatercourse'),
const PostWatercourseForm = React.lazy(
() => import('../containers/LocationDetails/LineDetails/WatercourseDetailForm/PostWatercourse'),
);
const WatercourseDetails = React.lazy(() => import('./WatercourseDetailsRoutes'));
const PostSensorForm = React.lazy(() =>
import('../containers/LocationDetails/PointDetails/SensorDetail/v2/PostSensor'),
const PostSensorForm = React.lazy(
() => import('../containers/LocationDetails/PointDetails/SensorDetail/v2/PostSensor'),
);
const SensorDetails = React.lazy(() => import('./SensorDetailsRoutes'));

Expand All @@ -142,34 +144,34 @@ const AddCrop = React.lazy(() => import('../containers/AddCropVariety/AddCropVar
const EditCrop = React.lazy(() => import('../containers/EditCropVariety'));
const ComplianceInfo = React.lazy(() => import('../containers/AddCropVariety/ComplianceInfo'));
const AddNewCrop = React.lazy(() => import('../containers/AddNewCrop'));
const PlantingLocation = React.lazy(() =>
import('../containers/Crop/AddManagementPlan/PlantingLocation'),
const PlantingLocation = React.lazy(
() => import('../containers/Crop/AddManagementPlan/PlantingLocation'),
);
const Transplant = React.lazy(() => import('../containers/Crop/AddManagementPlan/Transplant'));
const PlantingDate = React.lazy(() => import('../containers/Crop/AddManagementPlan/PlantingDate'));
const PlantingMethod = React.lazy(() =>
import('../containers/Crop/AddManagementPlan/PlantingMethod'),
const PlantingMethod = React.lazy(
() => import('../containers/Crop/AddManagementPlan/PlantingMethod'),
);
const PlantInContainer = React.lazy(() =>
import('../containers/Crop/AddManagementPlan/PlantInContainer'),
const PlantInContainer = React.lazy(
() => import('../containers/Crop/AddManagementPlan/PlantInContainer'),
);
const PlantBroadcast = React.lazy(() =>
import('../containers/Crop/AddManagementPlan/BroadcastPlan'),
const PlantBroadcast = React.lazy(
() => import('../containers/Crop/AddManagementPlan/BroadcastPlan'),
);
const BedPlan = React.lazy(() => import('../containers/Crop/AddManagementPlan/BedPlan/BedPlan'));
const BedPlanGuidance = React.lazy(() =>
import('../containers/Crop/AddManagementPlan/BedPlan/BedPlanGuidance'),
const BedPlanGuidance = React.lazy(
() => import('../containers/Crop/AddManagementPlan/BedPlan/BedPlanGuidance'),
);
const ManagementPlanName = React.lazy(() =>
import('../containers/Crop/AddManagementPlan/ManagementPlanName'),
const ManagementPlanName = React.lazy(
() => import('../containers/Crop/AddManagementPlan/ManagementPlanName'),
);
const RowMethod = React.lazy(() => import('../containers/Crop/AddManagementPlan/RowMethod'));
const RowMethodGuidance = React.lazy(() =>
import('../containers/Crop/AddManagementPlan/RowMethod/RowGuidance'),
const RowMethodGuidance = React.lazy(
() => import('../containers/Crop/AddManagementPlan/RowMethod/RowGuidance'),
);

const PlantedAlready = React.lazy(() =>
import('../containers/Crop/AddManagementPlan/PlantedAlready'),
const PlantedAlready = React.lazy(
() => import('../containers/Crop/AddManagementPlan/PlantedAlready'),
);

const Documents = React.lazy(() => import('../containers/Documents'));
Expand All @@ -178,60 +180,63 @@ const EditDocument = React.lazy(() => import('../containers/Documents/Edit'));

const AddDocument = React.lazy(() => import('../containers/Documents/Add'));
const MainDocument = React.lazy(() => import('../containers/Documents/Main'));
const CertificationReportingPeriod = React.lazy(() =>
import('../containers/Certifications/ReportingPeriod'),
const CertificationReportingPeriod = React.lazy(
() => import('../containers/Certifications/ReportingPeriod'),
);
const CertificationSurvey = React.lazy(() => import('../containers/Certifications/Survey'));

const InterestedOrganic = React.lazy(() =>
import('../containers/OrganicCertifierSurvey/InterestedOrganic/UpdateInterestedOrganic'),
const InterestedOrganic = React.lazy(
() => import('../containers/OrganicCertifierSurvey/InterestedOrganic/UpdateInterestedOrganic'),
);
const CertificationSelection = React.lazy(() =>
import(
'../containers/OrganicCertifierSurvey/CertificationSelection/UpdateCertificationSelection'
),
const CertificationSelection = React.lazy(
() =>
import(
'../containers/OrganicCertifierSurvey/CertificationSelection/UpdateCertificationSelection'
),
);

const CertifierSelectionMenu = React.lazy(() =>
import(
'../containers/OrganicCertifierSurvey/CertifierSelectionMenu/UpdateCertifierSelectionMenu'
),
const CertifierSelectionMenu = React.lazy(
() =>
import(
'../containers/OrganicCertifierSurvey/CertifierSelectionMenu/UpdateCertifierSelectionMenu'
),
);

const SetCertificationSummary = React.lazy(() =>
import(
'../containers/OrganicCertifierSurvey/SetCertificationSummary/UpdateSetCertificationSummary'
),
const SetCertificationSummary = React.lazy(
() =>
import(
'../containers/OrganicCertifierSurvey/SetCertificationSummary/UpdateSetCertificationSummary'
),
);

const RequestCertifier = React.lazy(() =>
import('../containers/OrganicCertifierSurvey/RequestCertifier/UpdateRequestCertifier'),
const RequestCertifier = React.lazy(
() => import('../containers/OrganicCertifierSurvey/RequestCertifier/UpdateRequestCertifier'),
);
const ViewCertification = React.lazy(() =>
import('../containers/OrganicCertifierSurvey/ViewCertification/ViewCertification'),
const ViewCertification = React.lazy(
() => import('../containers/OrganicCertifierSurvey/ViewCertification/ViewCertification'),
);

const RenderSurvey = React.lazy(() => import('../containers/RenderSurvey/RenderSurvey'));
const ExportDownload = React.lazy(() => import('../containers/ExportDownload'));

const ManagementTasks = React.lazy(() =>
import('../containers/Crop/ManagementDetail/ManagementTasks'),
const ManagementTasks = React.lazy(
() => import('../containers/Crop/ManagementDetail/ManagementTasks'),
);
const ManagementDetails = React.lazy(() =>
import('../containers/Crop/ManagementDetail/ManagementDetails'),
const ManagementDetails = React.lazy(
() => import('../containers/Crop/ManagementDetail/ManagementDetails'),
);
const EditManagementDetails = React.lazy(() =>
import('../containers/Crop/ManagementDetail/EditManagementDetails'),
const EditManagementDetails = React.lazy(
() => import('../containers/Crop/ManagementDetail/EditManagementDetails'),
);
const CompleteManagementPlan = React.lazy(() =>
import('../containers/Crop/CompleteManagementPlan/CompleteManagementPlan'),
const CompleteManagementPlan = React.lazy(
() => import('../containers/Crop/CompleteManagementPlan/CompleteManagementPlan'),
);
const AbandonManagementPlan = React.lazy(() =>
import('../containers/Crop/CompleteManagementPlan/AbandonManagementPlan'),
const AbandonManagementPlan = React.lazy(
() => import('../containers/Crop/CompleteManagementPlan/AbandonManagementPlan'),
);
const RepeatCropPlan = React.lazy(() => import('../containers/Crop/RepeatCropPlan'));
const RepeatCropPlanConfirmation = React.lazy(() =>
import('../containers/Crop/RepeatCropPlan/Confirmation'),
const RepeatCropPlanConfirmation = React.lazy(
() => import('../containers/Crop/RepeatCropPlan/Confirmation'),
);

const TaskAssignment = React.lazy(() => import('../containers/Task/TaskAssignment'));
Expand All @@ -245,41 +250,41 @@ const Tasks = React.lazy(() => import('../containers/Task'));
const ManageCustomTasks = React.lazy(() => import('../containers/Task/ManageCustomTasks'));
const AddCustomTask = React.lazy(() => import('../containers/Task/AddCustomTask'));
const TaskComplete = React.lazy(() => import('../containers/Task/TaskComplete'));
const HarvestCompleteQuantity = React.lazy(() =>
import('../containers/Task/TaskComplete/HarvestComplete/Quantity'),
const HarvestCompleteQuantity = React.lazy(
() => import('../containers/Task/TaskComplete/HarvestComplete/Quantity'),
);
const HarvestUses = React.lazy(() =>
import('../containers/Task/TaskComplete/HarvestComplete/HarvestUses'),
const HarvestUses = React.lazy(
() => import('../containers/Task/TaskComplete/HarvestComplete/HarvestUses'),
);
const TaskCompleteStepOne = React.lazy(() => import('../containers/Task/TaskComplete/StepOne'));
const TaskReadOnly = React.lazy(() => import('../containers/Task/TaskReadOnly'));
const EditCustomTask = React.lazy(() => import('../containers/Task/EditCustomTask'));
const TaskAbandon = React.lazy(() => import('../containers/Task/TaskAbandon'));
const EditCustomTaskUpdate = React.lazy(() => import('../containers/Task/EditCustomTaskUpdate'));
const TaskTransplantMethod = React.lazy(() =>
import('../containers/Task/TaskTransplantMethod/TaskTransplantMethod'),
const TaskTransplantMethod = React.lazy(
() => import('../containers/Task/TaskTransplantMethod/TaskTransplantMethod'),
);
const TaskBedMethod = React.lazy(() =>
import('../containers/Task/TaskTransplantMethod/TaskBedMethod'),
const TaskBedMethod = React.lazy(
() => import('../containers/Task/TaskTransplantMethod/TaskBedMethod'),
);
const TaskBedGuidance = React.lazy(() =>
import('../containers/Task/TaskTransplantMethod/TaskBedGuidance'),
const TaskBedGuidance = React.lazy(
() => import('../containers/Task/TaskTransplantMethod/TaskBedGuidance'),
);
const TaskRowMethod = React.lazy(() =>
import('../containers/Task/TaskTransplantMethod/TaskRowMethod'),
const TaskRowMethod = React.lazy(
() => import('../containers/Task/TaskTransplantMethod/TaskRowMethod'),
);
const TaskRowGuidance = React.lazy(() =>
import('../containers/Task/TaskTransplantMethod/TaskRowGuidance'),
const TaskRowGuidance = React.lazy(
() => import('../containers/Task/TaskTransplantMethod/TaskRowGuidance'),
);
const TaskContainerMethod = React.lazy(() =>
import('../containers/Task/TaskTransplantMethod/TaskContainerMethod'),
const TaskContainerMethod = React.lazy(
() => import('../containers/Task/TaskTransplantMethod/TaskContainerMethod'),
);
const Notification = React.lazy(() => import('../containers/Notification'));
const NotificationReadOnly = React.lazy(() =>
import('../containers/Notification/NotificationReadOnly'),
const NotificationReadOnly = React.lazy(
() => import('../containers/Notification/NotificationReadOnly'),
);
const UnknownRecord = React.lazy(() =>
import('../containers/ErrorHandler/UnknownRecord/UnknownRecord'),
const UnknownRecord = React.lazy(
() => import('../containers/ErrorHandler/UnknownRecord/UnknownRecord'),
);

const Routes = ({ isCompactSideMenu, isFeedbackSurveyOpen, setFeedbackSurveyOpen }) => {
Expand Down
Loading