@overmap-ai/core 1.0.65-asset-stage-completion-plan.0 → 1.0.65-asset-stage-completion-plan.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7599,12 +7599,129 @@ class IssueAssociationService extends BaseUploadService {
7599
7599
  this.dispatch(initializeIssueAssociations(issueAssociations));
7600
7600
  }
7601
7601
  }
7602
+ class AssetStageCompletionPlanService extends BaseApiService {
7603
+ add(payload) {
7604
+ const { store } = this.client;
7605
+ const createdBy = store.getState().userReducer.currentUser.id;
7606
+ const submittedAt = (/* @__PURE__ */ new Date()).toISOString();
7607
+ const offlineAssetStageCompletionPlan = offline({
7608
+ ...payload,
7609
+ submitted_at: submittedAt,
7610
+ created_by: createdBy
7611
+ });
7612
+ this.dispatch(addAssetStageCompletionPlan(offlineAssetStageCompletionPlan));
7613
+ const promise = this.enqueueRequest({
7614
+ description: "Create asset stage completion plan",
7615
+ method: HttpMethod.POST,
7616
+ url: "/assets/stage-completion-plans/",
7617
+ payload: offlineAssetStageCompletionPlan,
7618
+ blockers: [payload.asset_stage],
7619
+ blocks: [offlineAssetStageCompletionPlan.offline_id]
7620
+ });
7621
+ promise.then((result) => {
7622
+ this.dispatch(updateAssetStageCompletionPlan(result));
7623
+ }).catch((_error) => {
7624
+ this.dispatch(deleteAssetStageCompletionPlan(offlineAssetStageCompletionPlan.offline_id));
7625
+ });
7626
+ return [offlineAssetStageCompletionPlan, promise];
7627
+ }
7628
+ bulkAdd(assetStageId, payloads) {
7629
+ const { store } = this.client;
7630
+ const createdBy = store.getState().userReducer.currentUser.id;
7631
+ const submittedAt = (/* @__PURE__ */ new Date()).toISOString();
7632
+ const offlineAssetStageCompletionPlans = payloads.map((payload) => {
7633
+ return offline({
7634
+ ...payload,
7635
+ asset_stage: assetStageId,
7636
+ submitted_at: submittedAt,
7637
+ created_by: createdBy
7638
+ });
7639
+ });
7640
+ const offlineIds = offlineAssetStageCompletionPlans.map((plan) => plan.offline_id);
7641
+ this.dispatch(addAssetStageCompletionPlans(offlineAssetStageCompletionPlans));
7642
+ const promise = this.enqueueRequest({
7643
+ description: "Create asset stage completion plans",
7644
+ method: HttpMethod.POST,
7645
+ url: "/assets/stage-completion-plans/bulk/",
7646
+ payload: {
7647
+ asset_stage: assetStageId,
7648
+ submitted_at: submittedAt,
7649
+ asset_stage_completion_plans: payloads
7650
+ },
7651
+ blockers: [assetStageId],
7652
+ blocks: offlineIds
7653
+ });
7654
+ promise.then((result) => {
7655
+ this.dispatch(updateAssetStageCompletionPlans(result));
7656
+ }).catch((_error) => {
7657
+ this.dispatch(deleteAssetStageCompletionPlans(offlineIds));
7658
+ });
7659
+ return [offlineAssetStageCompletionPlans, promise];
7660
+ }
7661
+ update(payload) {
7662
+ const { store } = this.client;
7663
+ const assetStageCompletionPlan = selectAssetStageCompletionPlanById(payload.offline_id)(store.getState());
7664
+ if (!assetStageCompletionPlan) {
7665
+ throw new Error(`AssetStageCompletionPlan with offline_id ${payload.offline_id} not found`);
7666
+ }
7667
+ const updatedAssetStageCompletionPlan = offline({
7668
+ ...assetStageCompletionPlan,
7669
+ ...payload
7670
+ });
7671
+ this.dispatch(updateAssetStageCompletionPlan(updatedAssetStageCompletionPlan));
7672
+ const promise = this.enqueueRequest({
7673
+ description: "Update asset stage completion plan",
7674
+ method: HttpMethod.PATCH,
7675
+ url: `/assets/stage-completion-plans/${payload.offline_id}/`,
7676
+ payload,
7677
+ blockers: [payload.offline_id],
7678
+ blocks: [payload.offline_id]
7679
+ });
7680
+ promise.then((result) => {
7681
+ this.dispatch(updateAssetStageCompletionPlan(result));
7682
+ }).catch((_error) => {
7683
+ this.dispatch(updateAssetStageCompletionPlan(assetStageCompletionPlan));
7684
+ });
7685
+ return [updatedAssetStageCompletionPlan, promise];
7686
+ }
7687
+ async delete(id) {
7688
+ const { store } = this.client;
7689
+ const assetStageCompletionPlan = selectAssetStageCompletionPlanById(id)(store.getState());
7690
+ if (!assetStageCompletionPlan) {
7691
+ throw new Error(`AssetStageCompletionPlan with offline_id ${id} not found`);
7692
+ }
7693
+ this.dispatch(deleteAssetStageCompletionPlan(assetStageCompletionPlan.offline_id));
7694
+ const promise = this.enqueueRequest({
7695
+ description: "Delete asset stage completion plan",
7696
+ method: HttpMethod.DELETE,
7697
+ url: `/assets/stage-completion-plans/${id}/`,
7698
+ blockers: [id],
7699
+ blocks: [id]
7700
+ });
7701
+ promise.catch((_error) => {
7702
+ this.dispatch(addAssetStageCompletionPlan(assetStageCompletionPlan));
7703
+ });
7704
+ return promise;
7705
+ }
7706
+ async refreshStore(projectId) {
7707
+ const result = await this.enqueueRequest({
7708
+ description: "Get asset stage completion plans",
7709
+ method: HttpMethod.GET,
7710
+ url: "/assets/stage-completion-plans/",
7711
+ queryParams: { project_id: projectId.toString() },
7712
+ blockers: [],
7713
+ blocks: []
7714
+ });
7715
+ this.dispatch(addAssetStageCompletionPlans(result));
7716
+ }
7717
+ }
7602
7718
  export {
7603
7719
  APIError,
7604
7720
  AgentService,
7605
7721
  AssetAttachmentService,
7606
7722
  AssetService,
7607
7723
  AssetStageColors,
7724
+ AssetStageCompletionPlanService,
7608
7725
  AssetStageCompletionService,
7609
7726
  AssetStageService,
7610
7727
  AssetTypeAttachmentService,