Completed
Push — add/sync-health ( d5c58f )
by
unknown
06:44
created

Status   A

Complexity

Total Complexity 10

Size/Duplication

Total Lines 124
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Importance

Changes 0
Metric Value
dl 0
loc 124
rs 10
c 0
b 0
f 0
wmc 10
lcom 0
cbo 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A get_status_raw() 0 7 1
B get_status() 0 22 6
A update_status() 0 20 3
1
<?php
2
/**
3
 * Status class.
4
 *
5
 * @package automattic/jetpack-sync
6
 */
7
8
namespace Automattic\Jetpack\Sync;
9
10
/**
11
 * Status class
12
 */
13
class Status {
14
15
	/**
16
	 * Prefix of the blog lock transient.
17
	 *
18
	 * @access public
19
	 *
20
	 * @var string
21
	 */
22
	const STATUS_OPTION = 'jp_sync_health_status';
23
24
	/**
25
	 * Status KEY in option array
26
	 *
27
	 * @access public
28
	 *
29
	 * @var string
30
	 */
31
	const OPTION_STATUS_KEY = 'status';
32
33
	/**
34
	 * Timestamp KEY in option array
35
	 *
36
	 * @access public
37
	 *
38
	 * @var string
39
	 */
40
	const OPTION_TIMESTAMP_KEY = 'timestamp';
41
42
	/**
43
	 * Unknown Status
44
	 *
45
	 * @access public
46
	 *
47
	 * @var string
48
	 */
49
	const STATUS_UNKNOWN = 'Unknown';
50
51
	/**
52
	 * Out of Sync Status
53
	 *
54
	 * @access public
55
	 *
56
	 * @var string
57
	 */
58
	const STATUS_OUT_OF_SYNC = 'Out of Sync';
59
60
	/**
61
	 * In Sync Status
62
	 *
63
	 * @access public
64
	 *
65
	 * @var string
66
	 */
67
	const STATUS_IN_SYNC = 'In Sync';
68
69
	/**
70
	 * get the raw Sync Health Status
71
	 *
72
	 * @return array|mixed
73
	 */
74
	public static function get_status_raw( ) {
75
76
		$status = get_option( self::STATUS_OPTION, false );
77
78
		return $status;
79
80
	}
81
82
	/**
83
	 * get the Sync Health Status
84
	 *
85
	 * @return string Sync Health Status
86
	 */
87
	public static function get_status( ) {
88
89
		$status = get_option( self::STATUS_OPTION, false );
90
91
		if ( false == $status || ! is_array( $status ) || empty( $status[ self::OPTION_STATUS_KEY ] ) ) {
92
			return self::STATUS_UNKNOWN;
93
		}
94
95
		// Return only valid Status
96
		switch ( $status[ self::OPTION_STATUS_KEY ] ) {
97
98
			case self::STATUS_OUT_OF_SYNC:
99
			case self::STATUS_IN_SYNC:
100
				return $status[ self::OPTION_STATUS_KEY ];
101
				break;
0 ignored issues
show
Unused Code introduced by
break is not strictly necessary here and could be removed.

The break statement is not necessary if it is preceded for example by a return statement:

switch ($x) {
    case 1:
        return 'foo';
        break; // This break is not necessary and can be left off.
}

If you would like to keep this construct to be consistent with other case statements, you can safely mark this issue as a false-positive.

Loading history...
102
103
			default :
104
				return STATUS_UNKNOWN;
105
106
		}
107
108
	}
109
110
	/**
111
	 * update Sync Health Status
112
	 *
113
	 * @param string $status Sync Status
114
	 */
115
	public static function update_status( $status ) {
116
117
		// Default Status Option
118
		$new_status = array(
119
			self::OPTION_STATUS_KEY     => STATUS_UNKNOWN,
120
			self::OPTION_TIMESTAMP_KEY  => microtime(true ),
121
		);
122
123
		switch ( $status ) {
124
125
			case self::STATUS_OUT_OF_SYNC:
126
			case self::STATUS_IN_SYNC:
127
				$new_status[ self::OPTION_STATUS_KEY ] = $status;
128
				break;
129
130
		}
131
132
		update_option( self::STATUS_OPTION, $new_status );
133
134
	}
135
136
}
137