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,15 @@ 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- $ requestRepository = new RequestRepository ();
127+ function bluem_db_create_request ( $ request_array ): int
128+ {
129+ $ request = (new RequestRepository ())->add ($ request_array );
128130
129- $ insert_result = $ requestRepository ->add ($ request_object );
130-
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- }
131+ return $ request !== null ? $ request ->id : -1 ;
155132}
156133
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- );
134+ function bluem_db_request_log ( $ request_id , $ description ) {
135+ (new RequestRepository ())->addRequestLogItem ($ request_id , $ description );
172136}
173137
174138/**
@@ -316,85 +280,22 @@ function bluem_db_update_storage( $id, $object ) {
316280 *
317281 * @return bool
318282 */
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- ];
283+ function bluem_db_update_request ( $ request_id , $ request_object ): bool
284+ {
285+ return (new RequestRepository ())->updateRequest ($ request_id , $ request_object );
366286}
367287
368288/**
369289 * Get the request for a given ID, or false if not found
370- *
371- * @param $request_id
372- *
373- * @return bool|object
374290 */
375- function bluem_db_get_request_by_id ( string $ request_id ) {
376- // @todo change to only accept int for $request_id
377-
378- $ res = bluem_db_get_requests_by_keyvalue (
379- 'id ' ,
380- $ request_id
381- );
382-
383- return $ res [0 ] ?? false ;
291+ function bluem_db_get_request_by_id ( string $ request_id ): ?Request
292+ {
293+ return (new RequestRepository ())->getRequest ((int ) $ request_id );
384294}
385295
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 ;
296+ function bluem_db_delete_request_by_id ( $ request_id ): bool
297+ {
298+ return (new RequestRepository ())->deleteRequest ((int ) $ request_id );
398299}
399300
400301function bluem_db_get_request_by_debtor_reference ( $ debtor_reference ) {
@@ -555,11 +456,6 @@ function bluem_db_get_most_recent_request( $user_id = null, $type = "mandates" )
555456
556457 global $ wpdb ;
557458
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-
563459 $ query = "SELECT *
564460 FROM ` " . $ wpdb ->prefix . "bluem_requests`
565461 WHERE `user_id` = ' {$ user_id }'
@@ -585,52 +481,44 @@ function bluem_db_get_most_recent_request( $user_id = null, $type = "mandates" )
585481function bluem_db_put_request_payload ( $ request_id , $ data ) {
586482 $ request = bluem_db_get_request_by_id ( $ request_id );
587483
588- if ( $ request ->payload !== "" ) {
589- try {
590- $ newPayload = json_decode ( $ request ->payload );
591- } catch ( Throwable $ th ) {
592- $ newPayload = new Stdclass ;
593- }
594- } else {
595- $ newPayload = new Stdclass ;
596- }
597- foreach ( $ data as $ k => $ v ) {
598- $ newPayload ->$ k = $ v ;
484+ if (!$ request ) {
485+ return ;
599486 }
600487
601- bluem_db_update_request (
602- $ request_id ,
603- [
604- 'payload ' => json_encode ( $ newPayload )
605- ]
606- );
607- }
488+ $ newPayload = [];
489+ if ( $ request ->payload !== [] ) {
490+ $ newPayload = $ request ->payload ;
491+ }
608492
609- function bluem_db_get_logs_for_request ( $ id ) {
610- global $ wpdb ;
493+ foreach ( $ data as $ k => $ v ) {
494+ $ newPayload [$ k ] = $ v ;
495+ }
611496
612- // date_default_timezone_set('Europe/Amsterdam');
613- // $wpdb->time_zone = 'Europe/Amsterdam';
497+ try {
498+ (new RequestRepository ())->updateRequest (
499+ $ request_id ,
500+ [
501+ 'payload ' => json_encode ($ newPayload , JSON_THROW_ON_ERROR )
502+ ]
503+ );
504+ } catch (JsonException $ e ) {
614505
615- return $ wpdb -> get_results ( " SELECT * FROM ` " . $ wpdb -> prefix . " bluem_requests_log` WHERE `request_id` = $ id ORDER BY `timestamp` DESC " );
506+ }
616507}
617508
618- function bluem_db_get_links_for_order ( $ id ) {
619- global $ wpdb ;
620-
621- // date_default_timezone_set('Europe/Amsterdam');
622- // $wpdb->time_zone = 'Europe/Amsterdam';
623-
624- return $ wpdb ->get_results ( "SELECT * FROM ` " . $ wpdb ->prefix . "bluem_requests_links` WHERE `item_id` = {$ id } and `item_type` = 'order'ORDER BY `timestamp` DESC " );
509+ function bluem_db_get_logs_for_request ( $ id ): ?array
510+ {
511+ return (new RequestRepository ())->getRequestLogs ((int ) $ id );
625512}
626513
627- function bluem_db_get_links_for_request ( $ id ) {
628- global $ wpdb ;
629-
630- // date_default_timezone_set('Europe/Amsterdam');
631- // $wpdb->time_zone = 'Europe/Amsterdam';
514+ function bluem_db_get_links_for_order ( $ id ): ?array
515+ {
516+ return (new RequestRepository ())->getRequestLinksByItemId ((int ) $ id );
517+ }
632518
633- return $ wpdb ->get_results ( "SELECT * FROM ` " . $ wpdb ->prefix . "bluem_requests_links` WHERE `request_id` = {$ id } ORDER BY `timestamp` DESC " );
519+ function bluem_db_get_links_for_request ( $ id ): ?array
520+ {
521+ return (new RequestRepository ())->getRequestLinksByRequestId ((int ) $ id );
634522}
635523
636524function bluem_db_create_link ( $ request_id , $ item_id , $ item_type = "order " ) {
@@ -644,20 +532,5 @@ function bluem_db_create_link( $request_id, $item_id, $item_type = "order" ) {
644532 return ;
645533 }
646534
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- }
535+ (new RequestRepository ())->addLinkToRequest ($ request_id , $ item_id );
663536}
0 commit comments