using System.Xml; using IntegryApiClient.Core.Domain.Abstraction.Contracts.Account; using IntegryApiClient.Core.Domain.RestClient.Contacts; using salesbook.Shared.Core.Dto; using salesbook.Shared.Core.Entity; using salesbook.Shared.Core.Interface; namespace salesbook.Shared.Core.Services; public class IntegryApiService(IIntegryApiRestClient integryApiRestClient, IUserSession userSession) : IIntegryApiService { public Task?> RetrieveActivity(string? dateFilter) { var queryParams = new Dictionary { { "dateFilter", dateFilter ?? "2020-01-01" } }; return integryApiRestClient.AuthorizedGet?>("crm/retrieveActivity", queryParams); } public Task?> RetrieveAllCommesse(string? dateFilter) { var queryParams = new Dictionary(); if (dateFilter != null) { queryParams.Add("dateFilter", dateFilter); } return integryApiRestClient.AuthorizedGet?>("crm/retrieveCommesse", queryParams); } public Task RetrieveAnagClie(string? dateFilter) { var queryParams = new Dictionary(); if (dateFilter != null) { queryParams.Add("dateFilter", dateFilter); } return integryApiRestClient.AuthorizedGet("crm/retrieveClienti", queryParams)!; } public Task RetrieveProspect(string? dateFilter) { var queryParams = new Dictionary(); if (dateFilter != null) { queryParams.Add("dateFilter", dateFilter); } return integryApiRestClient.AuthorizedGet("crm/retrieveProspect", queryParams)!; } public Task RetrieveSettings() => integryApiRestClient.AuthorizedGet("crm/retrieveSettings")!; public Task DeleteActivity(string activityId) { var queryParams = new Dictionary { { "activityId", activityId } }; return integryApiRestClient.AuthorizedGet($"activity/delete", queryParams); } public Task?> SaveActivity(ActivityDTO activity) => integryApiRestClient.AuthorizedPost?>("crm/saveActivity", activity); public Task SaveContact(CRMCreateContactRequestDTO request) => integryApiRestClient.AuthorizedPost("crm/createContact", request); public Task CheckVat(CheckVatRequestDTO request) => integryApiRestClient.Post("checkPartitaIva", request)!; public Task?> Geocode(string address) { var queryParams = new Dictionary { {"address", address}, {"retrieveAll", true} }; return integryApiRestClient.Get>("geocode", queryParams); } public Task?> AutoCompleteAddress(string address, string language, string uuid) { var queryParams = new Dictionary { {"address", address}, {"language", language}, {"uuid", uuid} }; return integryApiRestClient.Get>("google/places/autoCompleteAddress", queryParams); } public Task PlaceDetails(string placeId, string uuid) { var queryParams = new Dictionary { { "placeId", placeId }, { "uuid", uuid } }; return integryApiRestClient.Get("google/places/placeDetails", queryParams); } }