PluginProbe
The Innovative Form Builder – IvyForms / 1.5
The Innovative Form Builder – IvyForms v1.5
1.5.1 1.5 1.4.1 1.4 trunk 0.1.2 0.2 0.2.1 0.3 0.3.1 0.4 0.5 0.6 0.6.1 0.6.1-backup 0.6.1.1 0.7 0.8 0.8.1 0.8.2 0.9 0.9.1 1.0 1.1 1.1.1 All 27 releases
ivyforms / backend / src / Factory / Payment / OrderFactory.php

OrderFactory.php in The Innovative Form Builder – IvyForms 1.5, at backend/src/Factory/Payment/OrderFactory.php

43 lines 1.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace IvyForms\Factory\Payment;
4
5 use IvyForms\Entity\Payment\Order as OrderEntity;
6 use IvyForms\ValueObjects\Payment\Order as OrderValueObject;
7
8 /**
9 * Factory for order entities.
10 */
11 class OrderFactory
12 {
13 /**
14 * @param array<string, mixed> $data
15 * @return OrderEntity
16 */
17 public static function create(array $data): OrderEntity
18 {
19 $orderObject = new OrderValueObject(
20 (int) ($data['id'] ?? 0),
21 (int) ($data['entryId'] ?? 0),
22 (string) ($data['squareOrderId'] ?? ''),
23 (string) ($data['status'] ?? 'OPEN'),
24 isset($data['squareCustomerId']) ? (string) $data['squareCustomerId'] : null,
25 (int) ($data['amount'] ?? 0),
26 (string) ($data['currency'] ?? 'USD'),
27 isset($data['dateCreated']) ? (string) $data['dateCreated'] : null
28 );
29
30 $order = new OrderEntity($orderObject);
31
32 if (isset($data['id'])) {
33 $order->setId((int) $data['id']);
34 }
35
36 if (isset($data['dateCreated'])) {
37 $order->setDateCreated((string) $data['dateCreated']);
38 }
39
40 return $order;
41 }
42 }
43