Skip to content

Commit 1f31454

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 1f31454

File tree

5 files changed

+268
-206
lines changed

5 files changed

+268
-206
lines changed

bluem-db.php

Lines changed: 45 additions & 172 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,15 @@ 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-
$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

400301
function 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" )
585481
function 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

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

Comments
 (0)