Completed
Push — master ( 0ecca5...c58f84 )
by Felix
05:27
created

Storage::getJsonFromPassword()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 10
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 8
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 10
ccs 8
cts 8
cp 1
rs 9.4285
cc 1
eloc 7
nc 1
nop 1
crap 1
1
<?php
2
/**
3
 * PhPsst.
4
 *
5
 * @copyright Copyright (c) 2016 Felix Sandström
6
 * @license   MIT
7
 */
8
9
namespace PhPsst\Storage;
10
11
use PhPsst\Password;
12
13
/**
14
 */
15
abstract class Storage
16
{
17
    /**
18
     * @param Password $password
19
     * @param bool $allowOverwrite
20
     */
21
    abstract public function store(Password $password, $allowOverwrite = false);
22
23
    /**
24
     * @param $key
25
     * @return Password|null
26
     */
27
    abstract public function get($key);
28
29
    /**
30
     * @param Password $password
31
     */
32
    abstract public function delete(Password $password);
33
34
    /**
35
     * @param string $jsonData
36
     * @return Password
37
     */
38 2
    public function getPasswordFromJson($jsonData)
39
    {
40 2
        $password = null;
41 2
        if (($jsonObject = json_decode($jsonData))
42 2
            && !empty($jsonObject->id)
43 2
            && !empty($jsonObject->password)
44 2
            && !empty($jsonObject->ttl)
45 2
            && !empty($jsonObject->views)
46 2
        ) {
47 2
            $password = new Password($jsonObject->id, $jsonObject->password, $jsonObject->ttl, $jsonObject->views);
48 2
            if ($jsonObject->ttlTime < time()) {
49 1
                $this->delete($password);
50 1
                $password = null;
51 1
            }
52 2
        }
53
54 2
        return $password;
55
    }
56
}
57