AbstractController::newDeliveryReportCallback()   A
last analyzed

Complexity

Conditions 2
Paths 1

Size

Total Lines 13
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 2
eloc 9
c 1
b 0
f 0
nc 1
nop 1
dl 0
loc 13
rs 9.9666
1
<?php
2
3
/*
4
 * This file is part of the smsmode-bundle package.
5
 *
6
 * (c) 2019 WEBEWEB
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
12
namespace WBW\Bundle\SmsModeBundle\Controller;
13
14
use DateTime;
15
use Symfony\Component\HttpFoundation\Request;
16
use WBW\Bundle\CoreBundle\Controller\AbstractController as BaseController;
17
use WBW\Library\SmsMode\Api\DeliveryReportCallbackInterface;
18
use WBW\Library\SmsMode\Api\SmsReplyCallbackInterface;
19
use WBW\Library\SmsMode\Model\DeliveryReportCallback;
20
use WBW\Library\SmsMode\Model\SmsReplyCallback;
21
22
/**
23
 * Abstract controller.
24
 *
25
 * @author webeweb <https://github.com/webeweb>
26
 * @package WBW\Bundle\SmsModeBundle\Controller
27
 * @abstract
28
 */
29
abstract class AbstractController extends BaseController {
30
31
    /**
32
     * Create a delivery report callback.
33
     *
34
     * @param Request $request The request.
35
     * @return DeliveryReportCallback Returns the delivery report callback.
36
     */
37
    protected function newDeliveryReportCallback(Request $request): DeliveryReportCallback {
38
39
        $dateReception = DateTime::createFromFormat("Y-m-d H:i:s", $request->query->get(DeliveryReportCallbackInterface::PARAMETER_DATE_RECEPTION));
40
41
        $model = new DeliveryReportCallback();
42
        $model->setDateReception(false !== $dateReception ? $dateReception : null);
43
        $model->setMccMnc($request->query->get(DeliveryReportCallbackInterface::PARAMETER_MCC_MNC));
44
        $model->setNumero($request->query->get(DeliveryReportCallbackInterface::PARAMETER_NUMERO));
45
        $model->setRefClient($request->query->get(DeliveryReportCallbackInterface::PARAMETER_REF_CLIENT));
46
        $model->setSmsID($request->query->get(DeliveryReportCallbackInterface::PARAMETER_SMS_ID));
47
        $model->setStatus($request->query->getInt(DeliveryReportCallbackInterface::PARAMETER_STATUT));
48
49
        return $model;
50
    }
51
52
    /**
53
     * Create a SMS reply callback.
54
     *
55
     * @param Request $request The request.
56
     * @return SmsReplyCallback Returns the Sms reply callback.
57
     */
58
    protected function newSmsReplyCallback(Request $request): SmsReplyCallback {
59
60
        $dateReception = DateTime::createFromFormat("dmY-His", $request->query->get(SmsReplyCallbackInterface::PARAMETER_DATE_RECEPTION));
61
62
        $model = new SmsReplyCallback();
63
        $model->setDateReception(false !== $dateReception ? $dateReception : null);
64
        $model->setEmetteur($request->query->get(SmsReplyCallbackInterface::PARAMETER_EMETTEUR));
65
        $model->setMessage($request->query->get(SmsReplyCallbackInterface::PARAMETER_MESSAGE));
66
        $model->setNumero($request->query->get(SmsReplyCallbackInterface::PARAMETER_NUMERO));
67
        $model->setRefClient($request->query->get(SmsReplyCallbackInterface::PARAMETER_REF_CLIENT));
68
        $model->setResponseID($request->query->get(SmsReplyCallbackInterface::PARAMETER_RESPONSE_ID));
69
        $model->setSmsID($request->query->get(SmsReplyCallbackInterface::PARAMETER_SMS_ID));
70
71
        return $model;
72
    }
73
}
74