44// no need for a deactivation hook yet.
55
66use Bluem \BluemPHP \Application \RequestRepository ;
7+ use Bluem \BluemPHP \Domain \Request ;
78
89/**
910 * Initialize a database table for the requests.
@@ -123,52 +124,16 @@ function bluem_db_check() {
123124add_action ( 'plugins_loaded ' , 'bluem_db_check ' );
124125
125126// request specific functions
126- function bluem_db_create_request ( $ request_object ) {
127+ function bluem_db_create_request ( $ request_array ) {
127128 $ requestRepository = new RequestRepository ();
128129
129- $ insert_result = $ requestRepository ->add ($ request_object );
130+ $ request = $ requestRepository ->add ($ request_array );
130131
131- if ( $ insert_result ) {
132- $ request_id = $ insert_result ->id ;
133-
134- $ request_object = (object ) $ request_object ;
135-
136- if ( isset ( $ request_object ->order_id )
137- && ! is_null ( $ request_object ->order_id )
138- && $ request_object ->order_id != ""
139- ) {
140- bluem_db_create_link (
141- $ request_id ,
142- $ request_object ->order_id ,
143- "order "
144- );
145- }
146- bluem_db_request_log (
147- $ request_id ,
148- "Created request "
149- );
150-
151- return $ wpdb ->insert_id ;
152- } else {
153- return - 1 ;
154- }
132+ return $ request !== null ? $ request ->id : -1 ;
155133}
156134
157- function bluem_db_request_log ( $ request_id , $ description , $ log_data = [] ) {
158- global $ wpdb , $ current_user ;
159-
160- // date_default_timezone_set('Europe/Amsterdam');
161- // $wpdb->time_zone = 'Europe/Amsterdam';
162-
163- return $ wpdb ->insert (
164- $ wpdb ->prefix . "bluem_requests_log " ,
165- [
166- 'request_id ' => $ request_id ,
167- 'description ' => $ description ,
168- 'timestamp ' => date ( "Y-m-d H:i:s " ),
169- 'user_id ' => $ current_user ->ID
170- ]
171- );
135+ function bluem_db_request_log ( $ request_id , $ description ) {
136+ (new RequestRepository ())->addRequestLogItem ($ request_id , $ description );
172137}
173138
174139/**
@@ -316,85 +281,24 @@ function bluem_db_update_storage( $id, $object ) {
316281 *
317282 * @return bool
318283 */
319- function bluem_db_update_request ( $ request_id , $ request_object ) {
320- global $ wpdb ;
321-
322- // date_default_timezone_set('Europe/Amsterdam');
323- // $wpdb->time_zone = 'Europe/Amsterdam';
324-
325- if ( ! bluem_db_validated_request_well_formed ( $ request_object ) ) {
326- return false ;
327- }
328- $ update_result = $ wpdb ->update (
329- $ wpdb ->prefix . "bluem_requests " ,
330- $ request_object ,
331- [
332- 'id ' => $ request_id
333- ]
334- );
335-
336- if ( $ update_result ) {
337- bluem_db_request_log (
338- $ request_id ,
339- "Updated request. New data: " . json_encode ( $ request_object )
340- );
341-
342- return true ;
343- } else {
344- return false ;
345- }
346- }
347-
348- /**
349- * Get fields within any request
350- * @return string[]
351- */
352- function bluem_db_get_request_fields () {
353- return [
354- 'id ' ,
355- 'entrance_code ' ,
356- 'transaction_id ' ,
357- 'transaction_url ' ,
358- 'user_id ' ,
359- 'timestamp ' ,
360- 'description ' ,
361- 'type ' ,
362- 'debtor_reference ' ,
363- 'order_id ' ,
364- 'payload '
365- ];
284+ function bluem_db_update_request ( $ request_id , $ request_object ): bool
285+ {
286+ return (new RequestRepository ())->updateRequest ($ request_id , $ request_object );
366287}
367288
368289/**
369290 * Get the request for a given ID, or false if not found
370- *
371- * @param $request_id
372- *
373- * @return bool|object
374291 */
375- function bluem_db_get_request_by_id ( string $ request_id ) {
292+ function bluem_db_get_request_by_id ( string $ request_id ): ?Request
293+ {
376294 // @todo change to only accept int for $request_id
377295
378- $ res = bluem_db_get_requests_by_keyvalue (
379- 'id ' ,
380- $ request_id
381- );
382-
383- return $ res [0 ] ?? false ;
296+ return (new RequestRepository ())->getRequest ($ request_id );
384297}
385298
386- function bluem_db_delete_request_by_id ( $ request_id ) {
387- global $ wpdb ;
388-
389- // date_default_timezone_set('Europe/Amsterdam');
390- // $wpdb->time_zone = 'Europe/Amsterdam';
391-
392- $ wpdb ->show_errors ();
393-
394- $ query = $ wpdb ->delete ( $ wpdb ->prefix . 'bluem_requests ' , [ 'id ' => $ request_id ] );
395- $ query2 = $ wpdb ->delete ( $ wpdb ->prefix . 'bluem_requests_log ' , [ 'request_id ' => $ request_id ] );
396-
397- return $ query && $ query2 ;
299+ function bluem_db_delete_request_by_id ( $ request_id ): bool
300+ {
301+ return (new RequestRepository ())->deleteRequest ($ request_id );
398302}
399303
400304function bluem_db_get_request_by_debtor_reference ( $ debtor_reference ) {
@@ -555,11 +459,6 @@ function bluem_db_get_most_recent_request( $user_id = null, $type = "mandates" )
555459
556460 global $ wpdb ;
557461
558- // date_default_timezone_set('Europe/Amsterdam');
559- // $wpdb->time_zone = 'Europe/Amsterdam';
560-
561- $ wpdb ->show_errors (); //setting the Show or Display errors option to true
562-
563462 $ query = "SELECT *
564463 FROM ` " . $ wpdb ->prefix . "bluem_requests`
565464 WHERE `user_id` = ' {$ user_id }'
@@ -585,51 +484,46 @@ function bluem_db_get_most_recent_request( $user_id = null, $type = "mandates" )
585484function bluem_db_put_request_payload ( $ request_id , $ data ) {
586485 $ request = bluem_db_get_request_by_id ( $ request_id );
587486
588- if ( $ request-> payload !== "" ) {
589- try {
590- $ newPayload = json_decode ( $ request -> payload );
591- } catch ( Throwable $ th ) {
592- $ newPayload = new Stdclass ;
593- }
487+ if (! $ request ) {
488+ return ;
489+ }
490+
491+ if ( $ request -> payload !== [] ) {
492+ $ newPayload = $ request -> payload ;
594493 } else {
595- $ newPayload = new Stdclass ;
494+ $ newPayload = [] ;
596495 }
597496 foreach ( $ data as $ k => $ v ) {
598- $ newPayload-> $ k = $ v ;
497+ $ newPayload[ $ k ] = $ v ;
599498 }
600499
601- bluem_db_update_request (
602- $ request_id ,
603- [
604- 'payload ' => json_encode ( $ newPayload )
605- ]
606- );
500+ try {
501+ bluem_db_update_request (
502+ $ request_id ,
503+ [
504+ 'payload ' => json_encode ($ newPayload , JSON_THROW_ON_ERROR )
505+ ]
506+ );
507+ } catch (JsonException $ e ) {
508+
509+ }
607510}
608511
609512function bluem_db_get_logs_for_request ( $ id ) {
610513 global $ wpdb ;
611514
612- // date_default_timezone_set('Europe/Amsterdam');
613- // $wpdb->time_zone = 'Europe/Amsterdam';
614-
615515 return $ wpdb ->get_results ( "SELECT * FROM ` " . $ wpdb ->prefix . "bluem_requests_log` WHERE `request_id` = $ id ORDER BY `timestamp` DESC " );
616516}
617517
618518function bluem_db_get_links_for_order ( $ id ) {
619519 global $ wpdb ;
620520
621- // date_default_timezone_set('Europe/Amsterdam');
622- // $wpdb->time_zone = 'Europe/Amsterdam';
623-
624521 return $ wpdb ->get_results ( "SELECT * FROM ` " . $ wpdb ->prefix . "bluem_requests_links` WHERE `item_id` = {$ id } and `item_type` = 'order'ORDER BY `timestamp` DESC " );
625522}
626523
627524function bluem_db_get_links_for_request ( $ id ) {
628525 global $ wpdb ;
629526
630- // date_default_timezone_set('Europe/Amsterdam');
631- // $wpdb->time_zone = 'Europe/Amsterdam';
632-
633527 return $ wpdb ->get_results ( "SELECT * FROM ` " . $ wpdb ->prefix . "bluem_requests_links` WHERE `request_id` = {$ id } ORDER BY `timestamp` DESC " );
634528}
635529
@@ -644,20 +538,5 @@ function bluem_db_create_link( $request_id, $item_id, $item_type = "order" ) {
644538 return ;
645539 }
646540
647- $ insert_result = $ wpdb ->insert (
648- $ wpdb ->prefix . "bluem_requests_links " ,
649- [
650- 'request_id ' => $ request_id ,
651- 'item_id ' => $ item_id ,
652- 'item_type ' => $ item_type
653- ]
654- );
655-
656- if ( $ insert_result ) {
657- $ link_id = $ wpdb ->insert_id ;
658-
659- return $ link_id ;
660- } else {
661- return - 1 ;
662- }
541+ (new RequestRepository ())->addLinkToRequest ($ request_id , $ item_id );
663542}
0 commit comments