4
4
// no need for a deactivation hook yet.
5
5
6
6
use Bluem \BluemPHP \Application \RequestRepository ;
7
+ use Bluem \BluemPHP \Domain \Request ;
7
8
8
9
/**
9
10
* Initialize a database table for the requests.
@@ -123,52 +124,16 @@ function bluem_db_check() {
123
124
add_action ( 'plugins_loaded ' , 'bluem_db_check ' );
124
125
125
126
// request specific functions
126
- function bluem_db_create_request ( $ request_object ) {
127
+ function bluem_db_create_request ( $ request_array ) {
127
128
$ requestRepository = new RequestRepository ();
128
129
129
- $ insert_result = $ requestRepository ->add ($ request_object );
130
+ $ request = $ requestRepository ->add ($ request_array );
130
131
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 ;
155
133
}
156
134
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 );
172
137
}
173
138
174
139
/**
@@ -316,85 +281,24 @@ function bluem_db_update_storage( $id, $object ) {
316
281
*
317
282
* @return bool
318
283
*/
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 );
366
287
}
367
288
368
289
/**
369
290
* Get the request for a given ID, or false if not found
370
- *
371
- * @param $request_id
372
- *
373
- * @return bool|object
374
291
*/
375
- function bluem_db_get_request_by_id ( string $ request_id ) {
292
+ function bluem_db_get_request_by_id ( string $ request_id ): ?Request
293
+ {
376
294
// @todo change to only accept int for $request_id
377
295
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 );
384
297
}
385
298
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 );
398
302
}
399
303
400
304
function 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" )
555
459
556
460
global $ wpdb ;
557
461
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
-
563
462
$ query = "SELECT *
564
463
FROM ` " . $ wpdb ->prefix . "bluem_requests`
565
464
WHERE `user_id` = ' {$ user_id }'
@@ -585,51 +484,46 @@ function bluem_db_get_most_recent_request( $user_id = null, $type = "mandates" )
585
484
function bluem_db_put_request_payload ( $ request_id , $ data ) {
586
485
$ request = bluem_db_get_request_by_id ( $ request_id );
587
486
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 ;
594
493
} else {
595
- $ newPayload = new Stdclass ;
494
+ $ newPayload = [] ;
596
495
}
597
496
foreach ( $ data as $ k => $ v ) {
598
- $ newPayload-> $ k = $ v ;
497
+ $ newPayload[ $ k ] = $ v ;
599
498
}
600
499
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
+ }
607
510
}
608
511
609
512
function bluem_db_get_logs_for_request ( $ id ) {
610
513
global $ wpdb ;
611
514
612
- // date_default_timezone_set('Europe/Amsterdam');
613
- // $wpdb->time_zone = 'Europe/Amsterdam';
614
-
615
515
return $ wpdb ->get_results ( "SELECT * FROM ` " . $ wpdb ->prefix . "bluem_requests_log` WHERE `request_id` = $ id ORDER BY `timestamp` DESC " );
616
516
}
617
517
618
518
function bluem_db_get_links_for_order ( $ id ) {
619
519
global $ wpdb ;
620
520
621
- // date_default_timezone_set('Europe/Amsterdam');
622
- // $wpdb->time_zone = 'Europe/Amsterdam';
623
-
624
521
return $ wpdb ->get_results ( "SELECT * FROM ` " . $ wpdb ->prefix . "bluem_requests_links` WHERE `item_id` = {$ id } and `item_type` = 'order'ORDER BY `timestamp` DESC " );
625
522
}
626
523
627
524
function bluem_db_get_links_for_request ( $ id ) {
628
525
global $ wpdb ;
629
526
630
- // date_default_timezone_set('Europe/Amsterdam');
631
- // $wpdb->time_zone = 'Europe/Amsterdam';
632
-
633
527
return $ wpdb ->get_results ( "SELECT * FROM ` " . $ wpdb ->prefix . "bluem_requests_links` WHERE `request_id` = {$ id } ORDER BY `timestamp` DESC " );
634
528
}
635
529
@@ -644,20 +538,5 @@ function bluem_db_create_link( $request_id, $item_id, $item_type = "order" ) {
644
538
return ;
645
539
}
646
540
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 );
663
542
}
0 commit comments