Completed
Push — master ( 69b363...23eafa )
by
unknown
03:30 queued 49s
created

Birthday::hasYear()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 4
rs 10
cc 1
eloc 2
nc 1
nop 0
1
<?php
2
/**
3
 * Copyright 2016 Facebook, Inc.
4
 *
5
 * You are hereby granted a non-exclusive, worldwide, royalty-free license to
6
 * use, copy, modify, and distribute this software in source code or binary
7
 * form for use in connection with the web services and APIs provided by
8
 * Facebook.
9
 *
10
 * As with any software that integrates with the Facebook platform, your use
11
 * of this software is subject to the Facebook Developer Principles and
12
 * Policies [http://developers.facebook.com/policy/]. This copyright notice
13
 * shall be included in all copies or substantial portions of the software.
14
 *
15
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
18
 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
21
 * DEALINGS IN THE SOFTWARE.
22
 *
23
 */
24
namespace Facebook\GraphNodes;
25
26
use DateTime;
27
28
/**
29
 * Birthday object to handle various Graph return formats
30
 *
31
 * @package Facebook
32
 */
33
class Birthday extends DateTime
34
{
35
    /**
36
     * @var bool
37
     */
38
    private $hasDate = false;
39
40
    /**
41
     * @var bool
42
     */
43
    private $hasYear = false;
44
45
    /**
46
     * Parses Graph birthday format to set indication flags, possible values:
47
     *
48
     *  MM/DD/YYYY
49
     *  MM/DD
50
     *  YYYY
51
     *
52
     * @link https://developers.facebook.com/docs/graph-api/reference/user
53
     *
54
     * @param string $date
55
     */
56
    public function __construct($date)
57
    {
58
        $parts = explode('/', $date);
59
60
        $this->hasYear = count($parts) === 3 || count($parts) === 1;
61
        $this->hasDate = count($parts) === 3 || count($parts) === 2;
62
63
        parent::__construct($date);
64
    }
65
66
    /**
67
     * Returns whether date object contains birth day and month
68
     *
69
     * @return bool
70
     */
71
    public function hasDate()
72
    {
73
        return $this->hasDate;
74
    }
75
76
    /**
77
     * Returns whether date object contains birth year
78
     *
79
     * @return bool
80
     */
81
    public function hasYear()
82
    {
83
        return $this->hasYear;
84
    }
85
}
86