TimestampFactory   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 15
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
dl 0
loc 15
rs 10
c 0
b 0
f 0
ccs 6
cts 6
cp 1
wmc 2

1 Method

Rating   Name   Duplication   Size   Complexity  
A fromDateTime() 0 9 2
1
<?php
2
3
/**
4
 * Copyright 2017 American Express Travel Related Services Company, Inc.
5
 *
6
 * Licensed under the Apache License, Version 2.0 (the "License");
7
 * you may not use this file except in compliance with the License.
8
 * You may obtain a copy of the License at
9
 *
10
 * http://www.apache.org/licenses/LICENSE-2.0
11
 *
12
 * Unless required by applicable law or agreed to in writing, software
13
 * distributed under the License is distributed on an "AS IS" BASIS,
14
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
15
 * or implied. See the License for the specific language governing
16
 * permissions and limitations under the License.
17
 */
18
19
declare(strict_types=1);
20
21
namespace AmericanExpress\HyperledgerFabricClient\ProtoFactory;
22
23
use Google\Protobuf\Timestamp;
24
25
class TimestampFactory
26
{
27
    /**
28
     * @param \DateTime|null $dateTime
29
     * @return Timestamp
30
     */
31 11
    public static function fromDateTime(\DateTime $dateTime = null): Timestamp
32
    {
33 11
        $dateTime = $dateTime ?: new \DateTime('now', timezone_open('UTC'));
0 ignored issues
show
Bug introduced by
It seems like timezone_open('UTC') can also be of type false; however, parameter $timezone of DateTime::__construct() does only seem to accept null|DateTimeZone, maybe add an additional type check? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

33
        $dateTime = $dateTime ?: new \DateTime('now', /** @scrutinizer ignore-type */ timezone_open('UTC'));
Loading history...
34
35 11
        $timestamp = new Timestamp();
36 11
        $timestamp->setSeconds($dateTime->format('U'));
37 11
        $timestamp->setNanos($dateTime->format('u') * 1000);
38
39 11
        return $timestamp;
40
    }
41
}
42