From 1d24d575cabe441b8d412fa08d06c5dea32e8318 Mon Sep 17 00:00:00 2001 From: Keepers Date: Thu, 15 Sep 2022 13:44:52 -0600 Subject: [PATCH] fix folder deletion failures (#867) ## Description Graph clips time values ending in :00 from folder names. In order for the purge handler to check the time values correctly, we need to identify those folders and reinstate the 00 seconds tail. ## Type of change - [x] :bug: Bugfix ## Issue(s) * #805 ## Test Plan - [x] :muscle: Manual --- src/cmd/purge/purge.go | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/cmd/purge/purge.go b/src/cmd/purge/purge.go index 7e18262de..667ff7a48 100644 --- a/src/cmd/purge/purge.go +++ b/src/cmd/purge/purge.go @@ -3,6 +3,7 @@ package main import ( "context" "os" + "regexp" "time" "github.com/pkg/errors" @@ -246,6 +247,16 @@ func purgeContactFolders(ctx context.Context, gc *connector.GraphConnector, boun // ----- controller +var secfmt = regexp.MustCompile(`.+:0-9{2}:0-9{2}`) + +func normalizeDisplayName(dn string) string { + if !secfmt.MatchString(dn) { + dn += ":00" + } + + return dn +} + func purgeFolders( ctx context.Context, gc *connector.GraphConnector, @@ -268,13 +279,14 @@ func purgeFolders( var ( del bool displayName = *fld.GetDisplayName() - dnLen = len(displayName) + normName = normalizeDisplayName(*fld.GetDisplayName()) + dnLen = len(normName) ) if dnLen > stLen { - dnSuff := displayName[dnLen-stLen:] + suff := normName[dnLen-stLen:] - dnTime, err := common.ParseTime(dnSuff) + dnTime, err := common.ParseTime(suff) if err != nil { Info(ctx, errors.Wrapf(err, "Error: deleting %s folder [%s]", data, displayName)) continue