dexter has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/onomondo-eim/+/42952?usp=email )


Change subject: esipa_asn1_handler: use eimTransactionId in 
EimPackageResultResponseError
......................................................................

esipa_asn1_handler: use eimTransactionId in EimPackageResultResponseError

EimPackageResultResponseError contains an eimTransactionId, let's use this
eimTransactionId and add a dedicated handler function for the
EimPackageResultResponseError to esipa_asn1_handler_utils

Change-Id: Iadd852a7531f180618cf12b314170ceea3f97615
Related: SYS#8100
---
M src/esipa_asn1_handler.erl
M src/esipa_asn1_handler_utils.erl
2 files changed, 13 insertions(+), 6 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/onomondo-eim refs/changes/52/42952/1

diff --git a/src/esipa_asn1_handler.erl b/src/esipa_asn1_handler.erl
index 943c8a8..e1e89b3 100644
--- a/src/esipa_asn1_handler.erl
+++ b/src/esipa_asn1_handler.erl
@@ -390,11 +390,9 @@
             % not support.
             throw("unsuppported message type 
\"profileDownloadTriggerResult\"");
         {eimPackageResultResponseError, EimPackageResultResponseError} ->
-            EimPackageResultErrorCode = maps:get(
-                eimPackageResultErrorCode, EimPackageResultResponseError
-            ),
-            Outcome = [{[{eimPackageError, EimPackageResultErrorCode}]}],
-            ok = mnesia_db_work:finish(Pid, Outcome, EsipaReq)
+            ok = esipa_asn1_handler_utils:handle_eimPackageResultResponseError(
+                Pid, EimPackageResultResponseError, EsipaReq
+            )
     end,
     {provideEimPackageResultResponse, {emptyResponse, #{}}};
 %Unsupported request
diff --git a/src/esipa_asn1_handler_utils.erl b/src/esipa_asn1_handler_utils.erl
index d350116..2ef836d 100644
--- a/src/esipa_asn1_handler_utils.erl
+++ b/src/esipa_asn1_handler_utils.erl
@@ -6,7 +6,7 @@

 -module(esipa_asn1_handler_utils).

--export([handle_euiccPackageResult/3, handle_ipaEuiccDataResponse/3]).
+-export([handle_euiccPackageResult/3, handle_ipaEuiccDataResponse/3, 
handle_eimPackageResultResponseError/3]).

 eimTransactionId_from_euiccPackageResult(EuiccPackageResult) ->
     case EuiccPackageResult of
@@ -121,3 +121,12 @@

     Outcome = 
esipa_rest_utils:ipaEuiccDataResponse_to_outcome(IpaEuiccDataResponse),
     mnesia_db_work:finish(Pid, Outcome, Debuginfo).
+
+% Handle an EimPackageResultResponseError, this includes handling of the work 
items in mnesia_db and the generation of
+% an appropriate REST outcome for the REST API.
+handle_eimPackageResultResponseError(Pid, EimPackageResultResponseError, 
Debuginfo) ->
+    EimTransactionId = maps:get(eimTransactionId, 
EimPackageResultResponseError),
+    {_, _, _} = mnesia_db_work:pickup(Pid, EimTransactionId),
+    EimPackageResultErrorCode = maps:get(eimPackageResultErrorCode, 
EimPackageResultResponseError),
+    Outcome = [{[{eimPackageError, EimPackageResultErrorCode}]}],
+    mnesia_db_work:finish(Pid, Outcome, Debuginfo).

--
To view, visit https://gerrit.osmocom.org/c/onomondo-eim/+/42952?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings?usp=email

Gerrit-MessageType: newchange
Gerrit-Project: onomondo-eim
Gerrit-Branch: master
Gerrit-Change-Id: Iadd852a7531f180618cf12b314170ceea3f97615
Gerrit-Change-Number: 42952
Gerrit-PatchSet: 1
Gerrit-Owner: dexter <[email protected]>

Reply via email to