From bc74a3e054ac9f4460dde815eccfed42ae226ff1 Mon Sep 17 00:00:00 2001 From: ian60509 Date: Fri, 9 Aug 2024 05:31:38 +0000 Subject: [PATCH] fix: use type assertion to judge deregister error --- internal/sbi/consumer/nrf_service.go | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/internal/sbi/consumer/nrf_service.go b/internal/sbi/consumer/nrf_service.go index 2538f9f..6d666c8 100644 --- a/internal/sbi/consumer/nrf_service.go +++ b/internal/sbi/consumer/nrf_service.go @@ -146,13 +146,23 @@ func (ns *NrfService) SendDeregisterNFInstance() (problemDetails *models.Problem } _, deregisterErr := client.NFInstanceIDDocumentApi.DeregisterNFInstance(ctx, deregisterReq) if deregisterErr != nil { - if apiErr, ok := deregisterErr.(openapi.GenericOpenAPIError); ok { - pd = apiErr.Model().(*models.ProblemDetails) - return pd, deregisterErr + switch apiErr := deregisterErr.(type) { + case openapi.GenericOpenAPIError: + switch errModel := apiErr.Model().(type) { + case NFManagement.DeregisterNFInstanceError: + problemDetails = &errModel.ProblemDetails + return problemDetails, nil + case error: + problemDetails = openapi.ProblemDetailsSystemFailure(errModel.Error()) + return problemDetails, nil + } + case error: + problemDetails = openapi.ProblemDetailsSystemFailure(apiErr.Error()) + return problemDetails, nil } return nil, deregisterErr } - return problemDetails, err + return nil, nil } func (ns *NrfService) SendSearchNFInstances(nrfUri string,