Synchronizer error factory implementation (#645)

* Added sync error factories for outlook and gmail.

* Implement ObjectCannotBeDeletedHandler for OutlookSynchronizer.

* Remove debug code.

* Implement del key to delete on mail list.

* Revert debug code.
This commit is contained in:
Burak Kaan Köse
2025-04-26 10:49:55 +02:00
committed by GitHub
parent 5b44cf03ce
commit 9feb3f35c3
13 changed files with 289 additions and 39 deletions

View File

@@ -0,0 +1,39 @@
using System.Threading.Tasks;
using Microsoft.Kiota.Abstractions;
using Wino.Core.Domain.Interfaces;
using Wino.Core.Domain.Models.Errors;
using Wino.Core.Domain.Models.Requests;
using Wino.Core.Requests.Bundles;
namespace Wino.Core.Synchronizers.Errors.Outlook;
public class ObjectCannotBeDeletedHandler : ISynchronizerErrorHandler
{
private readonly IMailService _mailService;
public ObjectCannotBeDeletedHandler(IMailService mailService)
{
_mailService = mailService;
}
public bool CanHandle(SynchronizerErrorContext error)
{
return error.ErrorMessage.Contains("ErrorCannotDeleteObject") && error.RequestBundle is HttpRequestBundle<RequestInformation>;
}
public async Task<bool> HandleAsync(SynchronizerErrorContext error)
{
var castedBundle = error.RequestBundle as HttpRequestBundle<RequestInformation>;
if (castedBundle?.Request is MailRequestBase mailRequest)
{
var request = castedBundle.Request;
await _mailService.DeleteMailAsync(error.Account.Id, mailRequest.Item.Id);
return true;
}
return false;
}
}