Skip to content

Commit cb2b2be

Browse files
Moving more calls to get, update, add and delete requests to the repository and developing the database service to deal with that.
1 parent 1b103b2 commit cb2b2be

File tree

5 files changed

+236
-189
lines changed

5 files changed

+236
-189
lines changed

bluem-db.php

Lines changed: 34 additions & 155 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
// no need for a deactivation hook yet.
55

66
use 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() {
123124
add_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

400304
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" )
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" )
585484
function 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

609512
function 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

618518
function 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

627524
function 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

Comments
 (0)