added Edit Group button to mock sync group accordion

This commit is contained in:
2026-02-17 18:29:34 -07:00
parent d04a57beec
commit 7ef4638daa
5 changed files with 175 additions and 13 deletions
+36
View File
@@ -58,6 +58,7 @@ func Routes(
mockSyncGroups := syncGroups.Group("/mock")
mockSyncGroups.POST("", pub.Publish("/:acctID/inventory/sync-groups/mock"), response.Handler(as.saveNewMockSyncGroup))
mockSyncGroups.DELETE("/:syncGroupID", pub.Publish("/:acctID/inventory/sync-groups/mock"), response.Handler(as.deleteMockSyncGroup))
mockSyncGroups.PUT("/editing", pub.Publish("/:acctID/inventory/sync-groups/mock/editing"), response.Handler(as.selectMockSyncGroupForEditing))
mockDraftListings := mockSyncGroups.Group("/draft/listings", pub.Publish("/:acctID/inventory/sync-groups/mock/draft/listings"))
mockDraftListings.POST("", response.Handler(as.createMockSyncGroupListingDraft))
@@ -534,6 +535,41 @@ func (s *accountSubrouter) deleteMockSyncGroup(c *gin.Context) (response.Respons
return response.StatusCreated(), nil
}
// PUT /:acctID/inventory/sync-groups/mock/editing
func (s *accountSubrouter) selectMockSyncGroupForEditing(c *gin.Context) (response.Response, error) {
r := c.Request
ctx := r.Context()
acctID := auth.GetIdentity(ctx).Account.AccountID
var (
syncGroupID int64
)
if err := param.Form("syncGroupID", param.Int64(&syncGroupID)).
Unmarshal(c); err != nil {
return nil, err
}
prevSyncGroupID, ok, err := s.accts.StartEditingMockSyncGroup(ctx, acctID, syncGroupID)
if err != nil {
return nil, response.Errorf("failed to save new mock sync group: %w", response.ErrorFromConstant(err))
}
// emit events indicating sync groups being edited and no longer being edited
evts := make([]string, 1, 2)
evts[0] = fmt.Sprintf("accounts_%d_inventory_sync-groups_mock_%d", acctID, syncGroupID)
if ok {
evts = append(evts, fmt.Sprintf("accounts_%d_inventory_sync-groups_mock_%d", acctID, prevSyncGroupID))
}
if err := s.pub.Push(c, acctID, evts...); err != nil {
s.log.Errorf("failed to publish mock sync group editing events: %v", err)
}
return response.StatusOK(), nil
}
func lowerSnakeCase(s accounts.Platform) string {
return strings.ToLower(strings.Join(strings.Split(string(s), " "), "_"))
}