fix: avoid null api responses

This commit is contained in:
Meik
2026-07-01 14:23:28 +02:00
parent bdab9f37ba
commit c12c1ab7d2
2 changed files with 20 additions and 19 deletions

View File

@@ -13,7 +13,7 @@
<EnableDefaultCompileItems>false</EnableDefaultCompileItems> <EnableDefaultCompileItems>false</EnableDefaultCompileItems>
<M42ExtensionId>6673a25d-33d6-4072-91d9-abed4be1a966</M42ExtensionId> <M42ExtensionId>6673a25d-33d6-4072-91d9-abed4be1a966</M42ExtensionId>
<M42AssemblyPattern>C4ITF4SD*.*</M42AssemblyPattern> <M42AssemblyPattern>C4ITF4SD*.*</M42AssemblyPattern>
<M42PackageVersion>1.4.0.38</M42PackageVersion> <M42PackageVersion>1.4.0.39</M42PackageVersion>
<M42BuildPackage>true</M42BuildPackage> <M42BuildPackage>true</M42BuildPackage>
</PropertyGroup> </PropertyGroup>

View File

@@ -98,12 +98,13 @@ namespace C4IT.F4SD
public async Task<F4SDHelperService.DirectLink> getDirectLinkCreateTicket(string sid = "", string assetname = "") public async Task<F4SDHelperService.DirectLink> getDirectLinkCreateTicket(string sid = "", string assetname = "")
{ {
await Task.Delay(0); await Task.Delay(0);
return await _f4stHelperService.getDirectLinkCreateTicket(sid, assetname); return await _f4stHelperService.getDirectLinkCreateTicket(sid, assetname)
?? new F4SDHelperService.DirectLink();
} }
[Route("getDirectLinkF4SD"), HttpGet] [Route("getDirectLinkF4SD"), HttpGet]
public async Task<string> getDirectLinkF4SD(Guid EOID, string Type) public async Task<string> getDirectLinkF4SD(Guid EOID, string Type)
{ {
return await _f4stHelperService.getDirectLinkF4SD(EOID, Type); return await _f4stHelperService.getDirectLinkF4SD(EOID, Type) ?? string.Empty;
} }
[Route("getTicketList"), HttpGet] [Route("getTicketList"), HttpGet]
@@ -130,16 +131,16 @@ namespace C4IT.F4SD
public async Task<cF4SDTicket> getTicketDetails(Guid objectId) public async Task<cF4SDTicket> getTicketDetails(Guid objectId)
{ {
var tickets = await _f4stHelperService.getTicketDetails(new List<Guid>() { objectId }); var tickets = await _f4stHelperService.getTicketDetails(new List<Guid>() { objectId });
if (tickets.Count > 0) if (tickets?.Count > 0)
return tickets[0]; return tickets[0];
else
return null; return new cF4SDTicket { TicketObjectId = objectId };
} }
[Route("getTicketHistory"), HttpGet] [Route("getTicketHistory"), HttpGet]
public async Task<List<cTicketJournalItem>> getTicketHistory(Guid objectId) public async Task<List<cTicketJournalItem>> getTicketHistory(Guid objectId)
{ {
return await _f4stHelperService.GetJournalEntries(objectId); return await _f4stHelperService.GetJournalEntries(objectId) ?? new List<cTicketJournalItem>();
} }
[Route("getTicketOverviewCounts"), HttpGet] [Route("getTicketOverviewCounts"), HttpGet]
@@ -158,7 +159,8 @@ namespace C4IT.F4SD
.ToList(); .ToList();
var decodedQueues = ParseQueues(queues); var decodedQueues = ParseQueues(queues);
return await _f4stHelperService.getTicketOverviewCounts(sid, scope, parsedKeys, queueoption, decodedQueues); return await _f4stHelperService.getTicketOverviewCounts(sid, scope, parsedKeys, queueoption, decodedQueues)
?? new F4SDHelperService.TicketOverviewCountsResult();
} }
[Route("getTicketOverviewCountsByRoles"), HttpPost] [Route("getTicketOverviewCountsByRoles"), HttpPost]
@@ -182,7 +184,7 @@ namespace C4IT.F4SD
parsedKeys, parsedKeys,
request?.QueueOption ?? 0, request?.QueueOption ?? 0,
decodedQueues decodedQueues
); ) ?? new F4SDHelperService.TicketOverviewCountsByRoleResult();
} }
[Route("getTicketOverviewRelations"), HttpGet] [Route("getTicketOverviewRelations"), HttpGet]
@@ -196,7 +198,8 @@ namespace C4IT.F4SD
) )
{ {
var decodedQueues = ParseQueues(queues); var decodedQueues = ParseQueues(queues);
return await _f4stHelperService.getTicketOverviewRelations(sid, scope, key, count, queueoption, decodedQueues); return await _f4stHelperService.getTicketOverviewRelations(sid, scope, key, count, queueoption, decodedQueues)
?? new List<F4SDHelperService.TicketOverviewRelationDto>();
} }
/* /*
[Route("updateActivitySolution/{objectId}"), HttpPost] [Route("updateActivitySolution/{objectId}"), HttpPost]
@@ -244,7 +247,7 @@ namespace C4IT.F4SD
throw new UnauthorizedAccessException("Cannot determine the interactive Matrix42 user."); throw new UnauthorizedAccessException("Cannot determine the interactive Matrix42 user.");
var filter = AsqlHelper.BuildInCondition("ID", new Guid[] { userId }); var filter = AsqlHelper.BuildInCondition("ID", new Guid[] { userId });
return await _f4stHelperService.UserPermissionsInfo(filter); return await _f4stHelperService.UserPermissionsInfo(filter) ?? new UserPermissionsInfo();
} }
[HttpGet] [HttpGet]
[Route("getRoleMemberships")] [Route("getRoleMemberships")]
@@ -267,12 +270,10 @@ namespace C4IT.F4SD
if (!string.IsNullOrEmpty(filter)) if (!string.IsNullOrEmpty(filter))
{ {
return await _f4stHelperService.UserPermissionsInfo(filter); return await _f4stHelperService.UserPermissionsInfo(filter) ?? new UserPermissionsInfo();
}
else
{
return null;
} }
return new UserPermissionsInfo();
} }
public class TicketOverviewCountsByRolesRequest public class TicketOverviewCountsByRolesRequest
@@ -414,7 +415,7 @@ namespace C4IT.F4SD
catch (Exception E) catch (Exception E)
{ {
LogException(E); LogException(E);
return null; return string.Empty;
} }
finally finally
{ {
@@ -486,7 +487,7 @@ namespace C4IT.F4SD
catch (Exception E) catch (Exception E)
{ {
LogException(E); LogException(E);
return null; return Enumerable.Empty<cM42LogEntry>();
} }
} }
@@ -501,7 +502,7 @@ namespace C4IT.F4SD
[OperationType(OperationType.GetObject)] [OperationType(OperationType.GetObject)]
public cM42LogEntry GetClass(int id) public cM42LogEntry GetClass(int id)
{ {
return _f4stHelperService.privGetLog2(id); return _f4stHelperService.privGetLog2(id) ?? new cM42LogEntry { LineNumber = id };
} }
private static IEnumerable<cM42LogEntry> ApplyLogFilter(IEnumerable<cM42LogEntry> entries, ODataQueryOptions<cM42LogEntry> queryOptions) private static IEnumerable<cM42LogEntry> ApplyLogFilter(IEnumerable<cM42LogEntry> entries, ODataQueryOptions<cM42LogEntry> queryOptions)