@@ -7,7 +7,7 @@ use dataflow_rs::engine::{
77} ;
88use serde_json:: { Value , json} ;
99use swift_mt_message:: SwiftParser ;
10- use tracing:: { debug, error, info, instrument, warn } ;
10+ use tracing:: { debug, error, info, instrument} ;
1111
1212pub struct ParseMT ;
1313
@@ -88,20 +88,10 @@ impl ParseMT {
8888
8989 debug ! ( method = %method, "Determined MT103 processing method" ) ;
9090
91- match serde_json:: to_value ( & mt103_message) {
92- Ok ( json_value) => {
93- debug ! ( "MT103 JSON conversion successful" ) ;
94- json_value
95- }
96- Err ( e) => {
97- error ! ( error = ?e, "MT103 JSON conversion failed" ) ;
98- json ! ( {
99- "conversion_error" : format!( "{:?}" , e) ,
100- "message_type" : message_type,
101- "raw_payload" : payload
102- } )
103- }
104- }
91+ serde_json:: to_value ( & mt103_message) . map_err ( |e| {
92+ error ! ( error = ?e, "MT103 JSON conversion failed" ) ;
93+ DataflowError :: Validation ( format ! ( "MT103 JSON conversion failed: {e}" ) )
94+ } ) ?
10595 } else if message_type == "202" {
10696 let Some ( mt202_message) = parsed_message. into_mt202 ( ) else {
10797 error ! ( "Failed to convert SwiftMessage to MT202" ) ;
@@ -122,20 +112,10 @@ impl ParseMT {
122112
123113 debug ! ( method = %method, "Determined MT202 processing method" ) ;
124114
125- match serde_json:: to_value ( & mt202_message) {
126- Ok ( json_value) => {
127- debug ! ( "MT202 JSON conversion successful" ) ;
128- json_value
129- }
130- Err ( e) => {
131- error ! ( error = ?e, "MT202 JSON conversion failed" ) ;
132- json ! ( {
133- "conversion_error" : format!( "{:?}" , e) ,
134- "message_type" : message_type,
135- "raw_payload" : payload
136- } )
137- }
138- }
115+ serde_json:: to_value ( & mt202_message) . map_err ( |e| {
116+ error ! ( error = ?e, "MT202 JSON conversion failed" ) ;
117+ DataflowError :: Validation ( format ! ( "MT202 JSON conversion failed: {e}" ) )
118+ } ) ?
139119 } else if message_type == "205" {
140120 let Some ( mt205_message) = parsed_message. into_mt205 ( ) else {
141121 error ! ( "Failed to convert SwiftMessage to MT205" ) ;
@@ -156,20 +136,10 @@ impl ParseMT {
156136
157137 debug ! ( method = %method, "Determined MT205 processing method" ) ;
158138
159- match serde_json:: to_value ( & mt205_message) {
160- Ok ( json_value) => {
161- debug ! ( "MT205 JSON conversion successful" ) ;
162- json_value
163- }
164- Err ( e) => {
165- error ! ( error = ?e, "MT205 JSON conversion failed" ) ;
166- json ! ( {
167- "conversion_error" : format!( "{:?}" , e) ,
168- "message_type" : message_type,
169- "raw_payload" : payload
170- } )
171- }
172- }
139+ serde_json:: to_value ( & mt205_message) . map_err ( |e| {
140+ error ! ( error = ?e, "MT205 JSON conversion failed" ) ;
141+ DataflowError :: Validation ( format ! ( "MT205 JSON conversion failed: {e}" ) )
142+ } ) ?
173143 } else if message_type == "900" {
174144 let Some ( mt900_message) = parsed_message. into_mt900 ( ) else {
175145 error ! ( "Failed to convert SwiftMessage to MT900" ) ;
@@ -181,20 +151,10 @@ impl ParseMT {
181151 method = "normal" . to_string ( ) ;
182152 debug ! ( "Processing MT900 with normal method" ) ;
183153
184- match serde_json:: to_value ( & mt900_message) {
185- Ok ( json_value) => {
186- debug ! ( "MT900 JSON conversion successful" ) ;
187- json_value
188- }
189- Err ( e) => {
190- error ! ( error = ?e, "MT900 JSON conversion failed" ) ;
191- json ! ( {
192- "conversion_error" : format!( "{:?}" , e) ,
193- "message_type" : message_type,
194- "raw_payload" : payload
195- } )
196- }
197- }
154+ serde_json:: to_value ( & mt900_message) . map_err ( |e| {
155+ error ! ( error = ?e, "MT900 JSON conversion failed" ) ;
156+ DataflowError :: Validation ( format ! ( "MT900 JSON conversion failed: {e}" ) )
157+ } ) ?
198158 } else if message_type == "910" {
199159 let Some ( mt910_message) = parsed_message. into_mt910 ( ) else {
200160 error ! ( "Failed to convert SwiftMessage to MT910" ) ;
@@ -206,20 +166,10 @@ impl ParseMT {
206166 method = "normal" . to_string ( ) ;
207167 debug ! ( "Processing MT910 with normal method" ) ;
208168
209- match serde_json:: to_value ( & mt910_message) {
210- Ok ( json_value) => {
211- debug ! ( "MT910 JSON conversion successful" ) ;
212- json_value
213- }
214- Err ( e) => {
215- error ! ( error = ?e, "MT910 JSON conversion failed" ) ;
216- json ! ( {
217- "conversion_error" : format!( "{:?}" , e) ,
218- "message_type" : message_type,
219- "raw_payload" : payload
220- } )
221- }
222- }
169+ serde_json:: to_value ( & mt910_message) . map_err ( |e| {
170+ error ! ( error = ?e, "MT910 JSON conversion failed" ) ;
171+ DataflowError :: Validation ( format ! ( "MT910 JSON conversion failed: {e}" ) )
172+ } ) ?
223173 } else if message_type == "192" {
224174 let Some ( mt192_message) = parsed_message. into_mt192 ( ) else {
225175 error ! ( "Failed to convert SwiftMessage to MT192" ) ;
@@ -231,20 +181,10 @@ impl ParseMT {
231181 method = "normal" . to_string ( ) ;
232182 debug ! ( "Processing MT192 with normal method" ) ;
233183
234- match serde_json:: to_value ( & mt192_message) {
235- Ok ( json_value) => {
236- debug ! ( "MT192 JSON conversion successful" ) ;
237- json_value
238- }
239- Err ( e) => {
240- error ! ( error = ?e, "MT192 JSON conversion failed" ) ;
241- json ! ( {
242- "conversion_error" : format!( "{:?}" , e) ,
243- "message_type" : message_type,
244- "raw_payload" : payload
245- } )
246- }
247- }
184+ serde_json:: to_value ( & mt192_message) . map_err ( |e| {
185+ error ! ( error = ?e, "MT192 JSON conversion failed" ) ;
186+ DataflowError :: Validation ( format ! ( "MT192 JSON conversion failed: {e}" ) )
187+ } ) ?
248188 } else if message_type == "292" {
249189 let Some ( mt292_message) = parsed_message. into_mt292 ( ) else {
250190 error ! ( "Failed to convert SwiftMessage to MT292" ) ;
@@ -256,20 +196,10 @@ impl ParseMT {
256196 method = "normal" . to_string ( ) ;
257197 debug ! ( "Processing MT292 with normal method" ) ;
258198
259- match serde_json:: to_value ( & mt292_message) {
260- Ok ( json_value) => {
261- debug ! ( "MT292 JSON conversion successful" ) ;
262- json_value
263- }
264- Err ( e) => {
265- error ! ( error = ?e, "MT292 JSON conversion failed" ) ;
266- json ! ( {
267- "conversion_error" : format!( "{:?}" , e) ,
268- "message_type" : message_type,
269- "raw_payload" : payload
270- } )
271- }
272- }
199+ serde_json:: to_value ( & mt292_message) . map_err ( |e| {
200+ error ! ( error = ?e, "MT292 JSON conversion failed" ) ;
201+ DataflowError :: Validation ( format ! ( "MT292 JSON conversion failed: {e}" ) )
202+ } ) ?
273203 } else if message_type == "196" {
274204 let Some ( mt196_message) = parsed_message. into_mt196 ( ) else {
275205 error ! ( "Failed to convert SwiftMessage to MT196" ) ;
@@ -281,20 +211,10 @@ impl ParseMT {
281211 method = "normal" . to_string ( ) ;
282212 debug ! ( "Processing MT196 with normal method" ) ;
283213
284- match serde_json:: to_value ( & mt196_message) {
285- Ok ( json_value) => {
286- debug ! ( "MT196 JSON conversion successful" ) ;
287- json_value
288- }
289- Err ( e) => {
290- error ! ( error = ?e, "MT196 JSON conversion failed" ) ;
291- json ! ( {
292- "conversion_error" : format!( "{:?}" , e) ,
293- "message_type" : message_type,
294- "raw_payload" : payload
295- } )
296- }
297- }
214+ serde_json:: to_value ( & mt196_message) . map_err ( |e| {
215+ error ! ( error = ?e, "MT196 JSON conversion failed" ) ;
216+ DataflowError :: Validation ( format ! ( "MT196 JSON conversion failed: {e}" ) )
217+ } ) ?
298218 } else if message_type == "296" {
299219 let Some ( mt296_message) = parsed_message. into_mt296 ( ) else {
300220 error ! ( "Failed to convert SwiftMessage to MT296" ) ;
@@ -306,28 +226,15 @@ impl ParseMT {
306226 method = "normal" . to_string ( ) ;
307227 debug ! ( "Processing MT296 with normal method" ) ;
308228
309- match serde_json:: to_value ( & mt296_message) {
310- Ok ( json_value) => {
311- debug ! ( "MT296 JSON conversion successful" ) ;
312- json_value
313- }
314- Err ( e) => {
315- error ! ( error = ?e, "MT296 JSON conversion failed" ) ;
316- json ! ( {
317- "conversion_error" : format!( "{:?}" , e) ,
318- "message_type" : message_type,
319- "raw_payload" : payload
320- } )
321- }
322- }
229+ serde_json:: to_value ( & mt296_message) . map_err ( |e| {
230+ error ! ( error = ?e, "MT296 JSON conversion failed" ) ;
231+ DataflowError :: Validation ( format ! ( "MT296 JSON conversion failed: {e}" ) )
232+ } ) ?
323233 } else {
324- method = "normal" . to_string ( ) ;
325- warn ! ( message_type = %message_type, "Unsupported message type encountered" ) ;
326- json ! ( {
327- "conversion_error" : "Unsupported message type" ,
328- "message_type" : message_type,
329- "raw_payload" : payload
330- } )
234+ error ! ( message_type = %message_type, "Unsupported message type encountered" ) ;
235+ return Err ( DataflowError :: Validation ( format ! (
236+ "Unsupported message type: {message_type}"
237+ ) ) ) ;
331238 } ;
332239
333240 // Store the parsed result in message data
0 commit comments