Passed
Push — ci ( 3ea26a...990482 )
by litefeel
02:30
created
writing-on-github.php 1 patch
Indentation   +377 added lines, -377 removed lines patch added patch discarded remove patch
@@ -14,391 +14,391 @@
 block discarded – undo
14 14
 // This fixes function duplication during unit testing.
15 15
 $path = dirname( __FILE__ ) . '/vendor/autoload.php';
16 16
 if ( file_exists( $path ) ) {
17
-    require_once( $path );
17
+	require_once( $path );
18 18
 }
19 19
 
20 20
 add_action( 'plugins_loaded', array( new Writing_On_GitHub, 'boot' ) );
21 21
 
22 22
 class Writing_On_GitHub {
23 23
 
24
-    /**
25
-     * Object instance
26
-     * @var self
27
-     */
28
-    public static $instance;
29
-
30
-    /**
31
-     * Language text domain
32
-     * @var string
33
-     */
34
-    public static $text_domain = 'writing-on-github';
35
-
36
-    /**
37
-     * Controller object
38
-     * @var Writing_On_GitHub_Controller
39
-     */
40
-    public $controller;
41
-
42
-    /**
43
-     * Controller object
44
-     * @var Writing_On_GitHub_Admin
45
-     */
46
-    public $admin;
47
-
48
-    /**
49
-     * CLI object.
50
-     *
51
-     * @var Writing_On_GitHub_CLI
52
-     */
53
-    protected $cli;
54
-
55
-    /**
56
-     * Request object.
57
-     *
58
-     * @var Writing_On_GitHub_Request
59
-     */
60
-    protected $request;
61
-
62
-    /**
63
-     * Response object.
64
-     *
65
-     * @var Writing_On_GitHub_Response
66
-     */
67
-    protected $response;
68
-
69
-    /**
70
-     * Api object.
71
-     *
72
-     * @var Writing_On_GitHub_Api
73
-     */
74
-    protected $api;
75
-
76
-    /**
77
-     * Import object.
78
-     *
79
-     * @var Writing_On_GitHub_Import
80
-     */
81
-    protected $import;
82
-
83
-    /**
84
-     * Export object.
85
-     *
86
-     * @var Writing_On_GitHub_Export
87
-     */
88
-    protected $export;
89
-
90
-    /**
91
-     * Semaphore object.
92
-     *
93
-     * @var Writing_On_GitHub_Semaphore
94
-     */
95
-    protected $semaphore;
96
-
97
-    /**
98
-     * Database object.
99
-     *
100
-     * @var Writing_On_GitHub_Database
101
-     */
102
-    protected $database;
103
-
104
-    /**
105
-     * Called at load time, hooks into WP core
106
-     */
107
-    public function __construct() {
108
-        self::$instance = $this;
109
-
110
-        if ( is_admin() ) {
111
-            $this->admin = new Writing_On_GitHub_Admin;
112
-        }
113
-
114
-        $this->controller = new Writing_On_GitHub_Controller( $this );
115
-
116
-        if ( defined( 'WP_CLI' ) && WP_CLI ) {
117
-            WP_CLI::add_command( 'wogh', $this->cli() );
118
-        }
119
-    }
120
-
121
-    /**
122
-     * Attaches the plugin's hooks into WordPress.
123
-     */
124
-    public function boot() {
125
-        register_activation_hook( __FILE__, array( $this, 'activate' ) );
126
-        add_action( 'admin_notices', array( $this, 'activation_notice' ) );
127
-
128
-        add_action( 'init', array( $this, 'l10n' ) );
129
-
130
-        // Controller actions.
131
-        add_action( 'save_post', array( $this->controller, 'export_post' ) );
132
-        add_action( 'delete_post', array( $this->controller, 'delete_post' ) );
133
-        add_action( 'wp_ajax_nopriv_wogh_push_request', array( $this->controller, 'pull_posts' ) );
134
-        add_action( 'wogh_export', array( $this->controller, 'export_all' ), 10, 2 );
135
-        add_action( 'wogh_import', array( $this->controller, 'import_master' ), 10, 1 );
136
-        add_filter( 'get_edit_post_link', array( $this, 'edit_post_link' ), 10, 3 );
137
-
138
-        // add_filter( 'wogh_post_meta', array( $this, 'ignore_post_meta' ), 10, 1 );
139
-        // add_filter( 'wogh_pre_import_meta', array( $this, 'ignore_post_meta' ), 10, 1 );
140
-        add_filter( 'the_content', array( $this, 'the_content' ) );
141
-
142
-        do_action( 'wogh_boot', $this );
143
-    }
144
-
145
-    public function edit_post_link($link, $postID, $context) {
146
-        if ( ! wp_is_post_revision( $postID ) ) {
147
-            $post = new Writing_On_GitHub_Post( $postID, Writing_On_GitHub::$instance->api() );
148
-            if ( $post->is_on_github() ) {
149
-                return $post->github_edit_url();
150
-            }
151
-        }
152
-
153
-        return $link;
154
-    }
155
-
156
-    public function ignore_post_meta($meta) {
157
-        $ignore_meta_keys = get_option('wogh_ignore_metas');
158
-        if (empty($ignore_meta_keys)) {
159
-            return $meta;
160
-        }
161
-
162
-        $keys = preg_split("/\\r\\n|\\r|\\n/", $ignore_meta_keys);
163
-        if (empty($keys)) {
164
-            return $meta;
165
-        }
166
-        foreach ($keys as $key => $value) {
167
-            $keys[$key] = trim($value);
168
-        }
169
-
170
-        foreach ($meta as $key => $value) {
171
-            if (in_array($key, $keys)) {
172
-                unset($meta[$key]);
173
-            }
174
-        }
175
-
176
-        return $meta;
177
-    }
178
-
179
-    public function the_content($content) {
180
-        $arr = wp_upload_dir();
181
-        $baseurl = $arr['baseurl'] . '/writing-on-github';
182
-
183
-        $content = preg_replace_callback(
184
-            '/(<img [^>]*?src=[\'"])\s*(\/images\/[^\s#]\S+)\s*([\'"][^>]*?>)/',
185
-            function($matchs) use ($baseurl) {
186
-                $url = $baseurl . $matchs[2];
187
-                return "${matchs[1]}$url${matchs[3]}";
188
-            },
189
-            $content
190
-        );
191
-
192
-        $content = preg_replace_callback(
193
-            '/(<a [^>]*?href=[\'"])\s*(\/images\/[^\s#]\S+)\s*([\'"][^>]*?>)/',
194
-            function($matchs) use ($baseurl) {
195
-                $url = $baseurl . $matchs[2];
196
-                return "${matchs[1]}$url${matchs[3]}";
197
-            },
198
-            $content
199
-        );
200
-        return $content;
201
-    }
202
-
203
-    /**
204
-     * Init i18n files
205
-     */
206
-    public function l10n() {
207
-        load_plugin_textdomain( self::$text_domain );
208
-    }
209
-
210
-    /**
211
-     * Sets and kicks off the export cronjob
212
-     */
213
-    public function start_export( $force = false ) {
214
-        $this->start_cron( 'export', $force );
215
-    }
216
-
217
-    /**
218
-     * Sets and kicks off the import cronjob
219
-     */
220
-    public function start_import() {
221
-        $this->start_cron( 'import' );
222
-    }
223
-
224
-    /**
225
-     * Enables the admin notice on initial activation
226
-     */
227
-    public function activate() {
228
-        if ( 'yes' !== get_option( '_wogh_fully_exported' ) ) {
229
-            set_transient( '_wogh_activated', 'yes' );
230
-        }
231
-    }
232
-
233
-    /**
234
-     * Displays the activation admin notice
235
-     */
236
-    public function activation_notice() {
237
-        if ( ! get_transient( '_wogh_activated' ) ) {
238
-            return;
239
-        }
240
-
241
-        delete_transient( '_wogh_activated' );
242
-
243
-        ?><div class="updated">
24
+	/**
25
+	 * Object instance
26
+	 * @var self
27
+	 */
28
+	public static $instance;
29
+
30
+	/**
31
+	 * Language text domain
32
+	 * @var string
33
+	 */
34
+	public static $text_domain = 'writing-on-github';
35
+
36
+	/**
37
+	 * Controller object
38
+	 * @var Writing_On_GitHub_Controller
39
+	 */
40
+	public $controller;
41
+
42
+	/**
43
+	 * Controller object
44
+	 * @var Writing_On_GitHub_Admin
45
+	 */
46
+	public $admin;
47
+
48
+	/**
49
+	 * CLI object.
50
+	 *
51
+	 * @var Writing_On_GitHub_CLI
52
+	 */
53
+	protected $cli;
54
+
55
+	/**
56
+	 * Request object.
57
+	 *
58
+	 * @var Writing_On_GitHub_Request
59
+	 */
60
+	protected $request;
61
+
62
+	/**
63
+	 * Response object.
64
+	 *
65
+	 * @var Writing_On_GitHub_Response
66
+	 */
67
+	protected $response;
68
+
69
+	/**
70
+	 * Api object.
71
+	 *
72
+	 * @var Writing_On_GitHub_Api
73
+	 */
74
+	protected $api;
75
+
76
+	/**
77
+	 * Import object.
78
+	 *
79
+	 * @var Writing_On_GitHub_Import
80
+	 */
81
+	protected $import;
82
+
83
+	/**
84
+	 * Export object.
85
+	 *
86
+	 * @var Writing_On_GitHub_Export
87
+	 */
88
+	protected $export;
89
+
90
+	/**
91
+	 * Semaphore object.
92
+	 *
93
+	 * @var Writing_On_GitHub_Semaphore
94
+	 */
95
+	protected $semaphore;
96
+
97
+	/**
98
+	 * Database object.
99
+	 *
100
+	 * @var Writing_On_GitHub_Database
101
+	 */
102
+	protected $database;
103
+
104
+	/**
105
+	 * Called at load time, hooks into WP core
106
+	 */
107
+	public function __construct() {
108
+		self::$instance = $this;
109
+
110
+		if ( is_admin() ) {
111
+			$this->admin = new Writing_On_GitHub_Admin;
112
+		}
113
+
114
+		$this->controller = new Writing_On_GitHub_Controller( $this );
115
+
116
+		if ( defined( 'WP_CLI' ) && WP_CLI ) {
117
+			WP_CLI::add_command( 'wogh', $this->cli() );
118
+		}
119
+	}
120
+
121
+	/**
122
+	 * Attaches the plugin's hooks into WordPress.
123
+	 */
124
+	public function boot() {
125
+		register_activation_hook( __FILE__, array( $this, 'activate' ) );
126
+		add_action( 'admin_notices', array( $this, 'activation_notice' ) );
127
+
128
+		add_action( 'init', array( $this, 'l10n' ) );
129
+
130
+		// Controller actions.
131
+		add_action( 'save_post', array( $this->controller, 'export_post' ) );
132
+		add_action( 'delete_post', array( $this->controller, 'delete_post' ) );
133
+		add_action( 'wp_ajax_nopriv_wogh_push_request', array( $this->controller, 'pull_posts' ) );
134
+		add_action( 'wogh_export', array( $this->controller, 'export_all' ), 10, 2 );
135
+		add_action( 'wogh_import', array( $this->controller, 'import_master' ), 10, 1 );
136
+		add_filter( 'get_edit_post_link', array( $this, 'edit_post_link' ), 10, 3 );
137
+
138
+		// add_filter( 'wogh_post_meta', array( $this, 'ignore_post_meta' ), 10, 1 );
139
+		// add_filter( 'wogh_pre_import_meta', array( $this, 'ignore_post_meta' ), 10, 1 );
140
+		add_filter( 'the_content', array( $this, 'the_content' ) );
141
+
142
+		do_action( 'wogh_boot', $this );
143
+	}
144
+
145
+	public function edit_post_link($link, $postID, $context) {
146
+		if ( ! wp_is_post_revision( $postID ) ) {
147
+			$post = new Writing_On_GitHub_Post( $postID, Writing_On_GitHub::$instance->api() );
148
+			if ( $post->is_on_github() ) {
149
+				return $post->github_edit_url();
150
+			}
151
+		}
152
+
153
+		return $link;
154
+	}
155
+
156
+	public function ignore_post_meta($meta) {
157
+		$ignore_meta_keys = get_option('wogh_ignore_metas');
158
+		if (empty($ignore_meta_keys)) {
159
+			return $meta;
160
+		}
161
+
162
+		$keys = preg_split("/\\r\\n|\\r|\\n/", $ignore_meta_keys);
163
+		if (empty($keys)) {
164
+			return $meta;
165
+		}
166
+		foreach ($keys as $key => $value) {
167
+			$keys[$key] = trim($value);
168
+		}
169
+
170
+		foreach ($meta as $key => $value) {
171
+			if (in_array($key, $keys)) {
172
+				unset($meta[$key]);
173
+			}
174
+		}
175
+
176
+		return $meta;
177
+	}
178
+
179
+	public function the_content($content) {
180
+		$arr = wp_upload_dir();
181
+		$baseurl = $arr['baseurl'] . '/writing-on-github';
182
+
183
+		$content = preg_replace_callback(
184
+			'/(<img [^>]*?src=[\'"])\s*(\/images\/[^\s#]\S+)\s*([\'"][^>]*?>)/',
185
+			function($matchs) use ($baseurl) {
186
+				$url = $baseurl . $matchs[2];
187
+				return "${matchs[1]}$url${matchs[3]}";
188
+			},
189
+			$content
190
+		);
191
+
192
+		$content = preg_replace_callback(
193
+			'/(<a [^>]*?href=[\'"])\s*(\/images\/[^\s#]\S+)\s*([\'"][^>]*?>)/',
194
+			function($matchs) use ($baseurl) {
195
+				$url = $baseurl . $matchs[2];
196
+				return "${matchs[1]}$url${matchs[3]}";
197
+			},
198
+			$content
199
+		);
200
+		return $content;
201
+	}
202
+
203
+	/**
204
+	 * Init i18n files
205
+	 */
206
+	public function l10n() {
207
+		load_plugin_textdomain( self::$text_domain );
208
+	}
209
+
210
+	/**
211
+	 * Sets and kicks off the export cronjob
212
+	 */
213
+	public function start_export( $force = false ) {
214
+		$this->start_cron( 'export', $force );
215
+	}
216
+
217
+	/**
218
+	 * Sets and kicks off the import cronjob
219
+	 */
220
+	public function start_import() {
221
+		$this->start_cron( 'import' );
222
+	}
223
+
224
+	/**
225
+	 * Enables the admin notice on initial activation
226
+	 */
227
+	public function activate() {
228
+		if ( 'yes' !== get_option( '_wogh_fully_exported' ) ) {
229
+			set_transient( '_wogh_activated', 'yes' );
230
+		}
231
+	}
232
+
233
+	/**
234
+	 * Displays the activation admin notice
235
+	 */
236
+	public function activation_notice() {
237
+		if ( ! get_transient( '_wogh_activated' ) ) {
238
+			return;
239
+		}
240
+
241
+		delete_transient( '_wogh_activated' );
242
+
243
+		?><div class="updated">
244 244
             <p>
245 245
                 <?php
246
-                    printf(
247
-                        __( 'To set up your site to sync with GitHub, update your <a href="%s">settings</a> and click "Export to GitHub."', 'writing-on-github' ),
248
-                        admin_url( 'options-general.php?page=' . static::$text_domain)
249
-                    );
250
-                ?>
246
+					printf(
247
+						__( 'To set up your site to sync with GitHub, update your <a href="%s">settings</a> and click "Export to GitHub."', 'writing-on-github' ),
248
+						admin_url( 'options-general.php?page=' . static::$text_domain)
249
+					);
250
+				?>
251 251
             </p>
252 252
         </div><?php
253
-    }
254
-
255
-    /**
256
-     * Get the Controller object.
257
-     *
258
-     * @return Writing_On_GitHub_Controller
259
-     */
260
-    public function controller() {
261
-        return $this->controller;
262
-    }
263
-
264
-    /**
265
-     * Lazy-load the CLI object.
266
-     *
267
-     * @return Writing_On_GitHub_CLI
268
-     */
269
-    public function cli() {
270
-        if ( ! $this->cli ) {
271
-            $this->cli = new Writing_On_GitHub_CLI;
272
-        }
273
-
274
-        return $this->cli;
275
-    }
276
-
277
-    /**
278
-     * Lazy-load the Request object.
279
-     *
280
-     * @return Writing_On_GitHub_Request
281
-     */
282
-    public function request() {
283
-        if ( ! $this->request ) {
284
-            $this->request = new Writing_On_GitHub_Request( $this );
285
-        }
286
-
287
-        return $this->request;
288
-    }
289
-
290
-    /**
291
-     * Lazy-load the Response object.
292
-     *
293
-     * @return Writing_On_GitHub_Response
294
-     */
295
-    public function response() {
296
-        if ( ! $this->response ) {
297
-            $this->response = new Writing_On_GitHub_Response( $this );
298
-        }
299
-
300
-        return $this->response;
301
-    }
302
-
303
-    /**
304
-     * Lazy-load the Api object.
305
-     *
306
-     * @return Writing_On_GitHub_Api
307
-     */
308
-    public function api() {
309
-        if ( ! $this->api ) {
310
-            $this->api = new Writing_On_GitHub_Api( $this );
311
-        }
312
-
313
-        return $this->api;
314
-    }
315
-
316
-    /**
317
-     * Lazy-load the Import object.
318
-     *
319
-     * @return Writing_On_GitHub_Import
320
-     */
321
-    public function import() {
322
-        if ( ! $this->import ) {
323
-            $this->import = new Writing_On_GitHub_Import( $this );
324
-        }
325
-
326
-        return $this->import;
327
-    }
328
-
329
-    /**
330
-     * Lazy-load the Export object.
331
-     *
332
-     * @return Writing_On_GitHub_Export
333
-     */
334
-    public function export() {
335
-        if ( ! $this->export ) {
336
-            $this->export = new Writing_On_GitHub_Export( $this );
337
-        }
338
-
339
-        return $this->export;
340
-    }
341
-
342
-    /**
343
-     * Lazy-load the Semaphore object.
344
-     *
345
-     * @return Writing_On_GitHub_Semaphore
346
-     */
347
-    public function semaphore() {
348
-        if ( ! $this->semaphore ) {
349
-            $this->semaphore = new Writing_On_GitHub_Semaphore;
350
-        }
351
-
352
-        return $this->semaphore;
353
-    }
354
-
355
-    /**
356
-     * Lazy-load the Database object.
357
-     *
358
-     * @return Writing_On_GitHub_Database
359
-     */
360
-    public function database() {
361
-        if ( ! $this->database ) {
362
-            $this->database = new Writing_On_GitHub_Database( $this );
363
-        }
364
-
365
-        return $this->database;
366
-    }
367
-
368
-    /**
369
-     * Print to WP_CLI if in CLI environment or
370
-     * write to debug.log if WP_DEBUG is enabled
371
-     * @source http://www.stumiller.me/sending-output-to-the-wordpress-debug-log/
372
-     *
373
-     * @param mixed $msg
374
-     * @param string $write
375
-     */
376
-    public static function write_log( $msg, $write = 'line' ) {
377
-        if ( defined( 'WP_CLI' ) && WP_CLI ) {
378
-            if ( is_array( $msg ) || is_object( $msg ) ) {
379
-                WP_CLI::print_value( $msg );
380
-            } else {
381
-                WP_CLI::$write( $msg );
382
-            }
383
-        } elseif ( true === WP_DEBUG ) {
384
-            if ( is_array( $msg ) || is_object( $msg ) ) {
385
-                error_log( print_r( $msg, true ) );
386
-            } else {
387
-                error_log( $msg );
388
-            }
389
-        }
390
-    }
391
-
392
-    /**
393
-     * Kicks of an import or export cronjob.
394
-     *
395
-     * @param bool   $force
396
-     * @param string $type
397
-     */
398
-    protected function start_cron( $type, $force = false ) {
399
-        update_option( '_wogh_' . $type . '_started', 'yes' );
400
-        $user_id = get_current_user_id();
401
-        wp_schedule_single_event( time(), 'wogh_' . $type . '', array( $user_id, $force ) );
402
-        spawn_cron();
403
-    }
253
+	}
254
+
255
+	/**
256
+	 * Get the Controller object.
257
+	 *
258
+	 * @return Writing_On_GitHub_Controller
259
+	 */
260
+	public function controller() {
261
+		return $this->controller;
262
+	}
263
+
264
+	/**
265
+	 * Lazy-load the CLI object.
266
+	 *
267
+	 * @return Writing_On_GitHub_CLI
268
+	 */
269
+	public function cli() {
270
+		if ( ! $this->cli ) {
271
+			$this->cli = new Writing_On_GitHub_CLI;
272
+		}
273
+
274
+		return $this->cli;
275
+	}
276
+
277
+	/**
278
+	 * Lazy-load the Request object.
279
+	 *
280
+	 * @return Writing_On_GitHub_Request
281
+	 */
282
+	public function request() {
283
+		if ( ! $this->request ) {
284
+			$this->request = new Writing_On_GitHub_Request( $this );
285
+		}
286
+
287
+		return $this->request;
288
+	}
289
+
290
+	/**
291
+	 * Lazy-load the Response object.
292
+	 *
293
+	 * @return Writing_On_GitHub_Response
294
+	 */
295
+	public function response() {
296
+		if ( ! $this->response ) {
297
+			$this->response = new Writing_On_GitHub_Response( $this );
298
+		}
299
+
300
+		return $this->response;
301
+	}
302
+
303
+	/**
304
+	 * Lazy-load the Api object.
305
+	 *
306
+	 * @return Writing_On_GitHub_Api
307
+	 */
308
+	public function api() {
309
+		if ( ! $this->api ) {
310
+			$this->api = new Writing_On_GitHub_Api( $this );
311
+		}
312
+
313
+		return $this->api;
314
+	}
315
+
316
+	/**
317
+	 * Lazy-load the Import object.
318
+	 *
319
+	 * @return Writing_On_GitHub_Import
320
+	 */
321
+	public function import() {
322
+		if ( ! $this->import ) {
323
+			$this->import = new Writing_On_GitHub_Import( $this );
324
+		}
325
+
326
+		return $this->import;
327
+	}
328
+
329
+	/**
330
+	 * Lazy-load the Export object.
331
+	 *
332
+	 * @return Writing_On_GitHub_Export
333
+	 */
334
+	public function export() {
335
+		if ( ! $this->export ) {
336
+			$this->export = new Writing_On_GitHub_Export( $this );
337
+		}
338
+
339
+		return $this->export;
340
+	}
341
+
342
+	/**
343
+	 * Lazy-load the Semaphore object.
344
+	 *
345
+	 * @return Writing_On_GitHub_Semaphore
346
+	 */
347
+	public function semaphore() {
348
+		if ( ! $this->semaphore ) {
349
+			$this->semaphore = new Writing_On_GitHub_Semaphore;
350
+		}
351
+
352
+		return $this->semaphore;
353
+	}
354
+
355
+	/**
356
+	 * Lazy-load the Database object.
357
+	 *
358
+	 * @return Writing_On_GitHub_Database
359
+	 */
360
+	public function database() {
361
+		if ( ! $this->database ) {
362
+			$this->database = new Writing_On_GitHub_Database( $this );
363
+		}
364
+
365
+		return $this->database;
366
+	}
367
+
368
+	/**
369
+	 * Print to WP_CLI if in CLI environment or
370
+	 * write to debug.log if WP_DEBUG is enabled
371
+	 * @source http://www.stumiller.me/sending-output-to-the-wordpress-debug-log/
372
+	 *
373
+	 * @param mixed $msg
374
+	 * @param string $write
375
+	 */
376
+	public static function write_log( $msg, $write = 'line' ) {
377
+		if ( defined( 'WP_CLI' ) && WP_CLI ) {
378
+			if ( is_array( $msg ) || is_object( $msg ) ) {
379
+				WP_CLI::print_value( $msg );
380
+			} else {
381
+				WP_CLI::$write( $msg );
382
+			}
383
+		} elseif ( true === WP_DEBUG ) {
384
+			if ( is_array( $msg ) || is_object( $msg ) ) {
385
+				error_log( print_r( $msg, true ) );
386
+			} else {
387
+				error_log( $msg );
388
+			}
389
+		}
390
+	}
391
+
392
+	/**
393
+	 * Kicks of an import or export cronjob.
394
+	 *
395
+	 * @param bool   $force
396
+	 * @param string $type
397
+	 */
398
+	protected function start_cron( $type, $force = false ) {
399
+		update_option( '_wogh_' . $type . '_started', 'yes' );
400
+		$user_id = get_current_user_id();
401
+		wp_schedule_single_event( time(), 'wogh_' . $type . '', array( $user_id, $force ) );
402
+		spawn_cron();
403
+	}
404 404
 }
Please login to merge, or discard this patch.
lib/client/base.php 1 patch
Indentation   +200 added lines, -200 removed lines patch added patch discarded remove patch
@@ -9,204 +9,204 @@
 block discarded – undo
9 9
  */
10 10
 class Writing_On_GitHub_Base_Client {
11 11
 
12
-    const HOST_OPTION_KEY   = 'wogh_host';
13
-    const TOKEN_OPTION_KEY  = 'wogh_oauth_token';
14
-    const REPO_OPTION_KEY   = 'wogh_repository';
15
-    const BRANCH_OPTION_KEY = 'wogh_branch';
16
-
17
-    /**
18
-     * Application container.
19
-     *
20
-     * @var Writing_On_GitHub
21
-     */
22
-    protected $app;
23
-
24
-    /**
25
-     * Instantiates a new Api object.
26
-     *
27
-     * @param Writing_On_GitHub $app Application container.
28
-     */
29
-    public function __construct( Writing_On_GitHub $app ) {
30
-        $this->app = $app;
31
-    }
32
-
33
-    /**
34
-     * Generic GitHub API interface and response handler
35
-     *
36
-     * @param string $method HTTP method.
37
-     * @param string $endpoint API endpoint.
38
-     * @param array  $body Request body.
39
-     *
40
-     * @return stdClass|WP_Error
41
-     */
42
-    protected function call( $method, $endpoint, $body = array() ) {
43
-        if ( is_wp_error( $error = $this->can_call() ) ) {
44
-            /* @var WP_Error $error */
45
-            return $error;
46
-        }
47
-
48
-        $args = array(
49
-            'method'  => $method,
50
-            'headers' => array(
51
-                'Authorization' => 'token ' . $this->oauth_token(),
52
-            ),
53
-        );
54
-
55
-        if ( 'GET' !== $method ) {
56
-            $args['body'] = json_encode( $body );
57
-        }
58
-
59
-        // $tmpbody = isset( $args['body'] ) ? $args['body'] : '';
60
-        // error_log( "writing-on-github-call $method $endpoint $tmpbody" );
61
-
62
-        $response = wp_remote_request( $endpoint, $args );
63
-        $status   = wp_remote_retrieve_header( $response, 'status' );
64
-        $body     = json_decode( wp_remote_retrieve_body( $response ) );
65
-
66
-        if ( '2' !== substr( $status, 0, 1 ) && '3' !== substr( $status, 0, 1 ) ) {
67
-            return new WP_Error(
68
-                strtolower( str_replace( ' ', '_', $status ) ),
69
-                sprintf(
70
-                    __( 'Method %s to endpoint %s failed with error: %s', 'writing-on-github' ),
71
-                    $method,
72
-                    $endpoint,
73
-                    ( $body && $body->message ) ? $body->message : 'Unknown error'
74
-                )
75
-            );
76
-        }
77
-
78
-        return $body;
79
-    }
80
-
81
-    /**
82
-     * Validates whether the Api object can make a call.
83
-     *
84
-     * @return true|WP_Error
85
-     */
86
-    protected function can_call() {
87
-        if ( ! $this->oauth_token() ) {
88
-            return new WP_Error(
89
-                'missing_token',
90
-                __( 'Writing On GitHub needs an auth token. Please update your settings.', 'writing-on-github' )
91
-            );
92
-        }
93
-
94
-        $repo = $this->repository();
95
-
96
-        if ( ! $repo ) {
97
-            return new WP_Error(
98
-                'missing_repository',
99
-                __( 'Writing On GitHub needs a repository. Please update your settings.', 'writing-on-github' )
100
-            );
101
-        }
102
-
103
-        $parts = explode( '/', $repo );
104
-
105
-        if ( 2 !== count( $parts ) ) {
106
-            return new WP_Error(
107
-                'malformed_repository',
108
-                __( 'Writing On GitHub needs a properly formed repository. Please update your settings.', 'writing-on-github' )
109
-            );
110
-        }
111
-
112
-        return true;
113
-    }
114
-
115
-    /**
116
-     * Returns the repository to sync with
117
-     *
118
-     * @return string
119
-     */
120
-    public function repository() {
121
-        return (string) get_option( self::REPO_OPTION_KEY );
122
-    }
123
-
124
-    /**
125
-     * Returns the user's oauth token
126
-     *
127
-     * @return string
128
-     */
129
-    public function oauth_token() {
130
-        return (string) get_option( self::TOKEN_OPTION_KEY );
131
-    }
132
-
133
-    /**
134
-     * Returns the GitHub host to sync with (for GitHub Enterprise support)
135
-     */
136
-    public function api_base() {
137
-        return get_option( self::HOST_OPTION_KEY );
138
-    }
139
-
140
-    public function branch() {
141
-        $branch = get_option( self::BRANCH_OPTION_KEY );
142
-        return $branch ? $branch : 'master';
143
-    }
144
-
145
-    /**
146
-     * API endpoint for the master branch reference
147
-     */
148
-    public function reference_endpoint() {
149
-        $url = $this->api_base() . '/repos/';
150
-        $url = $url . $this->repository() . '/git/refs/heads/' . $this->branch();
151
-
152
-        return $url;
153
-    }
154
-
155
-    /**
156
-     * Api to get and create commits
157
-     */
158
-    public function commit_endpoint() {
159
-        $url = $this->api_base() . '/repos/';
160
-        $url = $url . $this->repository() . '/git/commits';
161
-
162
-        return $url;
163
-    }
164
-
165
-    /**
166
-     * Api to compare commits
167
-     */
168
-    public function compare_endpoint() {
169
-        $url = $this->api_base() . '/repos/';
170
-        $url = $url . $this->repository() . '/compare';
171
-
172
-        return $url;
173
-    }
174
-
175
-    /**
176
-     * Api to get and create trees
177
-     */
178
-    public function tree_endpoint() {
179
-        $url = $this->api_base() . '/repos/';
180
-        $url = $url . $this->repository() . '/git/trees';
181
-
182
-        return $url;
183
-    }
184
-
185
-    /**
186
-     * Builds the proper blob API endpoint for a given post
187
-     *
188
-     * Returns String the relative API call path
189
-     */
190
-    public function blob_endpoint() {
191
-        $url = $this->api_base() . '/repos/';
192
-        $url = $url . $this->repository() . '/git/blobs';
193
-
194
-        return $url;
195
-    }
196
-
197
-    /**
198
-     * Builds the proper content API endpoint for a given post
199
-     *
200
-     * Returns String the relative API call path
201
-     */
202
-    public function content_endpoint( $path = false ) {
203
-        $url = $this->api_base() . '/repos/';
204
-        $url = $url . $this->repository() . '/contents';
205
-
206
-        if ( ! empty($path) ) {
207
-            $url .= '/' . $path;
208
-        }
209
-
210
-        return $url;
211
-    }
12
+	const HOST_OPTION_KEY   = 'wogh_host';
13
+	const TOKEN_OPTION_KEY  = 'wogh_oauth_token';
14
+	const REPO_OPTION_KEY   = 'wogh_repository';
15
+	const BRANCH_OPTION_KEY = 'wogh_branch';
16
+
17
+	/**
18
+	 * Application container.
19
+	 *
20
+	 * @var Writing_On_GitHub
21
+	 */
22
+	protected $app;
23
+
24
+	/**
25
+	 * Instantiates a new Api object.
26
+	 *
27
+	 * @param Writing_On_GitHub $app Application container.
28
+	 */
29
+	public function __construct( Writing_On_GitHub $app ) {
30
+		$this->app = $app;
31
+	}
32
+
33
+	/**
34
+	 * Generic GitHub API interface and response handler
35
+	 *
36
+	 * @param string $method HTTP method.
37
+	 * @param string $endpoint API endpoint.
38
+	 * @param array  $body Request body.
39
+	 *
40
+	 * @return stdClass|WP_Error
41
+	 */
42
+	protected function call( $method, $endpoint, $body = array() ) {
43
+		if ( is_wp_error( $error = $this->can_call() ) ) {
44
+			/* @var WP_Error $error */
45
+			return $error;
46
+		}
47
+
48
+		$args = array(
49
+			'method'  => $method,
50
+			'headers' => array(
51
+				'Authorization' => 'token ' . $this->oauth_token(),
52
+			),
53
+		);
54
+
55
+		if ( 'GET' !== $method ) {
56
+			$args['body'] = json_encode( $body );
57
+		}
58
+
59
+		// $tmpbody = isset( $args['body'] ) ? $args['body'] : '';
60
+		// error_log( "writing-on-github-call $method $endpoint $tmpbody" );
61
+
62
+		$response = wp_remote_request( $endpoint, $args );
63
+		$status   = wp_remote_retrieve_header( $response, 'status' );
64
+		$body     = json_decode( wp_remote_retrieve_body( $response ) );
65
+
66
+		if ( '2' !== substr( $status, 0, 1 ) && '3' !== substr( $status, 0, 1 ) ) {
67
+			return new WP_Error(
68
+				strtolower( str_replace( ' ', '_', $status ) ),
69
+				sprintf(
70
+					__( 'Method %s to endpoint %s failed with error: %s', 'writing-on-github' ),
71
+					$method,
72
+					$endpoint,
73
+					( $body && $body->message ) ? $body->message : 'Unknown error'
74
+				)
75
+			);
76
+		}
77
+
78
+		return $body;
79
+	}
80
+
81
+	/**
82
+	 * Validates whether the Api object can make a call.
83
+	 *
84
+	 * @return true|WP_Error
85
+	 */
86
+	protected function can_call() {
87
+		if ( ! $this->oauth_token() ) {
88
+			return new WP_Error(
89
+				'missing_token',
90
+				__( 'Writing On GitHub needs an auth token. Please update your settings.', 'writing-on-github' )
91
+			);
92
+		}
93
+
94
+		$repo = $this->repository();
95
+
96
+		if ( ! $repo ) {
97
+			return new WP_Error(
98
+				'missing_repository',
99
+				__( 'Writing On GitHub needs a repository. Please update your settings.', 'writing-on-github' )
100
+			);
101
+		}
102
+
103
+		$parts = explode( '/', $repo );
104
+
105
+		if ( 2 !== count( $parts ) ) {
106
+			return new WP_Error(
107
+				'malformed_repository',
108
+				__( 'Writing On GitHub needs a properly formed repository. Please update your settings.', 'writing-on-github' )
109
+			);
110
+		}
111
+
112
+		return true;
113
+	}
114
+
115
+	/**
116
+	 * Returns the repository to sync with
117
+	 *
118
+	 * @return string
119
+	 */
120
+	public function repository() {
121
+		return (string) get_option( self::REPO_OPTION_KEY );
122
+	}
123
+
124
+	/**
125
+	 * Returns the user's oauth token
126
+	 *
127
+	 * @return string
128
+	 */
129
+	public function oauth_token() {
130
+		return (string) get_option( self::TOKEN_OPTION_KEY );
131
+	}
132
+
133
+	/**
134
+	 * Returns the GitHub host to sync with (for GitHub Enterprise support)
135
+	 */
136
+	public function api_base() {
137
+		return get_option( self::HOST_OPTION_KEY );
138
+	}
139
+
140
+	public function branch() {
141
+		$branch = get_option( self::BRANCH_OPTION_KEY );
142
+		return $branch ? $branch : 'master';
143
+	}
144
+
145
+	/**
146
+	 * API endpoint for the master branch reference
147
+	 */
148
+	public function reference_endpoint() {
149
+		$url = $this->api_base() . '/repos/';
150
+		$url = $url . $this->repository() . '/git/refs/heads/' . $this->branch();
151
+
152
+		return $url;
153
+	}
154
+
155
+	/**
156
+	 * Api to get and create commits
157
+	 */
158
+	public function commit_endpoint() {
159
+		$url = $this->api_base() . '/repos/';
160
+		$url = $url . $this->repository() . '/git/commits';
161
+
162
+		return $url;
163
+	}
164
+
165
+	/**
166
+	 * Api to compare commits
167
+	 */
168
+	public function compare_endpoint() {
169
+		$url = $this->api_base() . '/repos/';
170
+		$url = $url . $this->repository() . '/compare';
171
+
172
+		return $url;
173
+	}
174
+
175
+	/**
176
+	 * Api to get and create trees
177
+	 */
178
+	public function tree_endpoint() {
179
+		$url = $this->api_base() . '/repos/';
180
+		$url = $url . $this->repository() . '/git/trees';
181
+
182
+		return $url;
183
+	}
184
+
185
+	/**
186
+	 * Builds the proper blob API endpoint for a given post
187
+	 *
188
+	 * Returns String the relative API call path
189
+	 */
190
+	public function blob_endpoint() {
191
+		$url = $this->api_base() . '/repos/';
192
+		$url = $url . $this->repository() . '/git/blobs';
193
+
194
+		return $url;
195
+	}
196
+
197
+	/**
198
+	 * Builds the proper content API endpoint for a given post
199
+	 *
200
+	 * Returns String the relative API call path
201
+	 */
202
+	public function content_endpoint( $path = false ) {
203
+		$url = $this->api_base() . '/repos/';
204
+		$url = $url . $this->repository() . '/contents';
205
+
206
+		if ( ! empty($path) ) {
207
+			$url .= '/' . $path;
208
+		}
209
+
210
+		return $url;
211
+	}
212 212
 }
Please login to merge, or discard this patch.
lib/client/persist.php 1 patch
Indentation   +60 added lines, -60 removed lines patch added patch discarded remove patch
@@ -9,75 +9,75 @@
 block discarded – undo
9 9
  */
10 10
 class Writing_On_GitHub_Persist_Client extends Writing_On_GitHub_Base_Client {
11 11
 
12
-    /**
13
-     * Get the data for the current user.
14
-     *
15
-     * @return array
16
-     */
17
-    protected function export_user() {
18
-        $user_id = get_current_user_id();
19
-        $user = get_userdata( $user_id );
12
+	/**
13
+	 * Get the data for the current user.
14
+	 *
15
+	 * @return array
16
+	 */
17
+	protected function export_user() {
18
+		$user_id = get_current_user_id();
19
+		$user = get_userdata( $user_id );
20 20
 
21
-        if ( $user ) {
22
-            return array(
23
-                'name'  => $user->display_name,
24
-                'email' => $user->user_email,
25
-            );
26
-        }
21
+		if ( $user ) {
22
+			return array(
23
+				'name'  => $user->display_name,
24
+				'email' => $user->user_email,
25
+			);
26
+		}
27 27
 
28
-        return false;
29
-    }
28
+		return false;
29
+	}
30 30
 
31
-    /**
32
-     * Delete the file.
33
-     *
34
-     * @return array
35
-     */
36
-    public function delete_file( $path, $sha, $message ) {
37
-        $body = new stdClass();
38
-        $body->message = $message;
39
-        $body->sha = $sha;
40
-        $body->branch = $this->branch();
31
+	/**
32
+	 * Delete the file.
33
+	 *
34
+	 * @return array
35
+	 */
36
+	public function delete_file( $path, $sha, $message ) {
37
+		$body = new stdClass();
38
+		$body->message = $message;
39
+		$body->sha = $sha;
40
+		$body->branch = $this->branch();
41 41
 
42
-        if ( $author = $this->export_user() ) {
43
-            $body->author = $author;
44
-        }
42
+		if ( $author = $this->export_user() ) {
43
+			$body->author = $author;
44
+		}
45 45
 
46
-        return $this->call( 'DELETE', $this->content_endpoint( $path ), $body );
47
-    }
46
+		return $this->call( 'DELETE', $this->content_endpoint( $path ), $body );
47
+	}
48 48
 
49
-    /**
50
-     * Create the file.
51
-     *
52
-     * @return array
53
-     */
54
-    public function create_file( $blob, $message ) {
55
-        $body = $blob->to_body();
56
-        $body->message = $message;
57
-        $body->branch = $this->branch();
58
-        unset($body->sha);
49
+	/**
50
+	 * Create the file.
51
+	 *
52
+	 * @return array
53
+	 */
54
+	public function create_file( $blob, $message ) {
55
+		$body = $blob->to_body();
56
+		$body->message = $message;
57
+		$body->branch = $this->branch();
58
+		unset($body->sha);
59 59
 
60
-        if ( $author = $this->export_user() ) {
61
-            $body->author = $author;
62
-        }
60
+		if ( $author = $this->export_user() ) {
61
+			$body->author = $author;
62
+		}
63 63
 
64
-        return $this->call( 'PUT', $this->content_endpoint( $blob->path() ), $body );
65
-    }
64
+		return $this->call( 'PUT', $this->content_endpoint( $blob->path() ), $body );
65
+	}
66 66
 
67
-    /**
68
-     * Update the file.
69
-     *
70
-     * @return array
71
-     */
72
-    public function update_file( $blob, $message ) {
73
-        $body = $blob->to_body();
74
-        $body->message = $message;
75
-        $body->branch = $this->branch();
67
+	/**
68
+	 * Update the file.
69
+	 *
70
+	 * @return array
71
+	 */
72
+	public function update_file( $blob, $message ) {
73
+		$body = $blob->to_body();
74
+		$body->message = $message;
75
+		$body->branch = $this->branch();
76 76
 
77
-        if ( $author = $this->export_user() ) {
78
-            $body->author = $author;
79
-        }
77
+		if ( $author = $this->export_user() ) {
78
+			$body->author = $author;
79
+		}
80 80
 
81
-        return $this->call( 'PUT', $this->content_endpoint( $blob->path() ), $body );
82
-    }
81
+		return $this->call( 'PUT', $this->content_endpoint( $blob->path() ), $body );
82
+	}
83 83
 }
Please login to merge, or discard this patch.
lib/response.php 1 patch
Indentation   +70 added lines, -70 removed lines patch added patch discarded remove patch
@@ -9,87 +9,87 @@
 block discarded – undo
9 9
  */
10 10
 class Writing_On_GitHub_Response {
11 11
 
12
-    /**
13
-     * Application container.
14
-     *
15
-     * @var Writing_On_GitHub
16
-     */
17
-    protected $app;
12
+	/**
13
+	 * Application container.
14
+	 *
15
+	 * @var Writing_On_GitHub
16
+	 */
17
+	protected $app;
18 18
 
19
-    /**
20
-     * Writing_On_GitHub_Response constructor.
21
-     *
22
-     * @param Writing_On_GitHub $app Application container.
23
-     */
24
-    public function __construct( Writing_On_GitHub $app ) {
25
-        $this->app = $app;
26
-    }
19
+	/**
20
+	 * Writing_On_GitHub_Response constructor.
21
+	 *
22
+	 * @param Writing_On_GitHub $app Application container.
23
+	 */
24
+	public function __construct( Writing_On_GitHub $app ) {
25
+		$this->app = $app;
26
+	}
27 27
 
28
-    /**
29
-     * Writes to the log and returns the error response.
30
-     *
31
-     * @param WP_Error $error Error to respond with.
32
-     *
33
-     * @return false
34
-     */
35
-    public function error( WP_Error $error ) {
36
-        global $wp_version;
28
+	/**
29
+	 * Writes to the log and returns the error response.
30
+	 *
31
+	 * @param WP_Error $error Error to respond with.
32
+	 *
33
+	 * @return false
34
+	 */
35
+	public function error( WP_Error $error ) {
36
+		global $wp_version;
37 37
 
38
-        $this->log( $error );
38
+		$this->log( $error );
39 39
 
40
-        if ( defined( 'DOING_AJAX' ) && DOING_AJAX && defined( 'WOGH_AJAX' ) && WOGH_AJAX ) {
41
-            /**
42
-             * WordPress 4.1.0 introduced allowing WP_Error objects to be
43
-             * passed directly into `wp_send_json_error`. This shims in
44
-             * compatibility for older versions. We're currently supporting 3.9+.
45
-             */
46
-            if ( version_compare( $wp_version, '4.1.0', '<' ) ) {
47
-                $result = array();
40
+		if ( defined( 'DOING_AJAX' ) && DOING_AJAX && defined( 'WOGH_AJAX' ) && WOGH_AJAX ) {
41
+			/**
42
+			 * WordPress 4.1.0 introduced allowing WP_Error objects to be
43
+			 * passed directly into `wp_send_json_error`. This shims in
44
+			 * compatibility for older versions. We're currently supporting 3.9+.
45
+			 */
46
+			if ( version_compare( $wp_version, '4.1.0', '<' ) ) {
47
+				$result = array();
48 48
 
49
-                foreach ( $error->errors as $code => $messages ) {
50
-                    foreach ( $messages as $message ) {
51
-                        $result[] = array( 'code' => $code, 'message' => $message );
52
-                    }
53
-                }
49
+				foreach ( $error->errors as $code => $messages ) {
50
+					foreach ( $messages as $message ) {
51
+						$result[] = array( 'code' => $code, 'message' => $message );
52
+					}
53
+				}
54 54
 
55
-                $error = $result;
56
-            }
55
+				$error = $result;
56
+			}
57 57
 
58
-            wp_send_json_error( $error );
59
-        }
58
+			wp_send_json_error( $error );
59
+		}
60 60
 
61
-        return false;
62
-    }
61
+		return false;
62
+	}
63 63
 
64
-    /**
65
-     * Writes to the log and returns the success response.
66
-     *
67
-     * @param string $success Success message to respond with.
68
-     *
69
-     * @return true
70
-     */
71
-    public function success( $success ) {
72
-        $this->log( $success );
64
+	/**
65
+	 * Writes to the log and returns the success response.
66
+	 *
67
+	 * @param string $success Success message to respond with.
68
+	 *
69
+	 * @return true
70
+	 */
71
+	public function success( $success ) {
72
+		$this->log( $success );
73 73
 
74
-        if ( defined( 'DOING_AJAX' ) && DOING_AJAX && defined( 'WOGH_AJAX' ) && WOGH_AJAX ) {
75
-            wp_send_json_success( $success );
76
-        }
74
+		if ( defined( 'DOING_AJAX' ) && DOING_AJAX && defined( 'WOGH_AJAX' ) && WOGH_AJAX ) {
75
+			wp_send_json_success( $success );
76
+		}
77 77
 
78
-        return true;
79
-    }
78
+		return true;
79
+	}
80 80
 
81
-    /**
82
-     * Writes a log message.
83
-     *
84
-     * Can extract a message from WP_Error object.
85
-     *
86
-     * @param string|WP_Error $msg Message to log.
87
-     */
88
-    protected function log( $msg ) {
89
-        if ( is_wp_error( $msg ) ) {
90
-            $msg = $msg->get_error_message();
91
-        }
81
+	/**
82
+	 * Writes a log message.
83
+	 *
84
+	 * Can extract a message from WP_Error object.
85
+	 *
86
+	 * @param string|WP_Error $msg Message to log.
87
+	 */
88
+	protected function log( $msg ) {
89
+		if ( is_wp_error( $msg ) ) {
90
+			$msg = $msg->get_error_message();
91
+		}
92 92
 
93
-        Writing_On_GitHub::write_log( $msg );
94
-    }
93
+		Writing_On_GitHub::write_log( $msg );
94
+	}
95 95
 }
Please login to merge, or discard this patch.
lib/controller.php 1 patch
Indentation   +230 added lines, -230 removed lines patch added patch discarded remove patch
@@ -9,234 +9,234 @@
 block discarded – undo
9 9
  */
10 10
 class Writing_On_GitHub_Controller {
11 11
 
12
-    /**
13
-     * Application container.
14
-     *
15
-     * @var Writing_On_GitHub
16
-     */
17
-    public $app;
18
-
19
-    /**
20
-     * Instantiates a new Controller object
21
-     *
22
-     * @param Writing_On_GitHub $app Applicatio container.
23
-     */
24
-    public function __construct( Writing_On_GitHub $app ) {
25
-        $this->app = $app;
26
-    }
27
-
28
-    /**
29
-     * Webhook callback as triggered from GitHub push.
30
-     *
31
-     * Reads the Webhook payload and syncs posts as necessary.
32
-     *
33
-     * @return boolean
34
-     */
35
-    public function pull_posts() {
36
-        $this->set_ajax();
37
-        if ( ! $this->app->semaphore()->is_open() ) {
38
-            return $this->app->response()->error( new WP_Error(
39
-                'semaphore_locked',
40
-                sprintf( __( '%s : Semaphore is locked, import/export already in progress.', 'writing-on-github' ), 'Controller::pull_posts()' )
41
-            ) );
42
-        }
43
-
44
-        if ( ! $this->app->request()->is_secret_valid() ) {
45
-            return $this->app->response()->error( new WP_Error(
46
-                'invalid_headers',
47
-                __( 'Failed to validate secret.', 'writing-on-github' )
48
-            ) );
49
-        }
50
-
51
-        // ping
52
-        if ( $this->app->request()->is_ping() ) {
53
-            return $this->app->response()->success( __( 'Wordpress is ready.', 'writing-on-github' ) );
54
-        }
55
-
56
-        // push
57
-        if ( ! $this->app->request()->is_push() ) {
58
-            return $this->app->response()->error( new WP_Error(
59
-                'invalid_headers',
60
-                __( 'Failed to validate webhook event.', 'writing-on-github' )
61
-            ) );
62
-        }
63
-        $payload = $this->app->request()->payload();
64
-
65
-        if ( ! $payload->should_import() ) {
66
-            return $this->app->response()->error( new WP_Error(
67
-                'invalid_payload',
68
-                sprintf(
69
-                    __( "%s won't be imported.", 'writing-on-github' ),
70
-                    strtolower( $payload->get_commit_id() ) ? : '[Missing Commit ID]'
71
-                )
72
-            ) );
73
-        }
74
-
75
-        $this->app->semaphore()->lock();
76
-        remove_action( 'save_post', array( $this, 'export_post' ) );
77
-        remove_action( 'delete_post', array( $this, 'delete_post' ) );
78
-
79
-        $result = $this->app->import()->payload( $payload );
80
-
81
-        $this->app->semaphore()->unlock();
82
-
83
-        if ( is_wp_error( $result ) ) {
84
-            /* @var WP_Error $result */
85
-            return $this->app->response()->error( $result );
86
-        }
87
-
88
-        return $this->app->response()->success( $result );
89
-    }
90
-
91
-    /**
92
-     * Imports posts from the current master branch.
93
-     *
94
-     * @return boolean
95
-     */
96
-    public function import_master( $user_id = 0 ) {
97
-        if ( ! $this->app->semaphore()->is_open() ) {
98
-            return $this->app->response()->error( new WP_Error(
99
-                'semaphore_locked',
100
-                sprintf( __( '%s : Semaphore is locked, import/export already in progress.', 'writing-on-github' ), 'Controller::import_master()' )
101
-            ) );
102
-        }
103
-
104
-        $this->app->semaphore()->lock();
105
-        remove_action( 'save_post', array( $this, 'export_post' ) );
106
-        remove_action( 'save_post', array( $this, 'delete_post' ) );
107
-
108
-        if ( $user_id ) {
109
-            wp_set_current_user( $user_id );
110
-        }
111
-
112
-        $result = $this->app->import()->master();
113
-
114
-        $this->app->semaphore()->unlock();
115
-
116
-        if ( is_wp_error( $result ) ) {
117
-            /* @var WP_Error $result */
118
-            update_option( '_wogh_import_error', $result->get_error_message() );
119
-
120
-            return $this->app->response()->error( $result );
121
-        }
122
-
123
-        update_option( '_wogh_import_complete', 'yes' );
124
-
125
-        return $this->app->response()->success( $result );
126
-    }
127
-
128
-    /**
129
-     * Export all the posts in the database to GitHub.
130
-     *
131
-     * @param  int        $user_id
132
-     * @param  boolean    $force
133
-     * @return boolean
134
-     */
135
-    public function export_all( $user_id = 0, $force = false ) {
136
-        if ( ! $this->app->semaphore()->is_open() ) {
137
-            return $this->app->response()->error( new WP_Error(
138
-                'semaphore_locked',
139
-                sprintf( __( '%s : Semaphore is locked, import/export already in progress.', 'writing-on-github' ), 'Controller::export_all()' )
140
-            ) );
141
-        }
142
-
143
-        $this->app->semaphore()->lock();
144
-
145
-        if ( $user_id ) {
146
-            wp_set_current_user( $user_id );
147
-        }
148
-
149
-        $result = $this->app->export()->full($force);
150
-        $this->app->semaphore()->unlock();
151
-
152
-        // Maybe move option updating out of this class/upgrade message display?
153
-        if ( is_wp_error( $result ) ) {
154
-            /* @var WP_Error $result */
155
-            update_option( '_wogh_export_error', $result->get_error_message() );
156
-
157
-            return $this->app->response()->error( $result );
158
-        } else {
159
-            update_option( '_wogh_export_complete', 'yes' );
160
-            update_option( '_wogh_fully_exported', 'yes' );
161
-
162
-            return $this->app->response()->success( $result );
163
-        }
164
-    }
165
-
166
-    /**
167
-     * Exports a single post to GitHub by ID.
168
-     *
169
-     * Called on the save_post hook.
170
-     *
171
-     * @param int $post_id Post ID.
172
-     *
173
-     * @return boolean
174
-     */
175
-    public function export_post( $post_id ) {
176
-        if ( wp_is_post_revision( $post_id ) ) {
177
-            return;
178
-        }
179
-
180
-        if ( ! $this->app->semaphore()->is_open() ) {
181
-            return $this->app->response()->error( new WP_Error(
182
-                'semaphore_locked',
183
-                sprintf( __( '%s : Semaphore is locked, import/export already in progress.', 'writing-on-github' ), 'Controller::export_post()' )
184
-            ) );
185
-        }
186
-
187
-        $this->app->semaphore()->lock();
188
-        $result = $this->app->export()->update( $post_id );
189
-        $this->app->semaphore()->unlock();
190
-
191
-        if ( is_wp_error( $result ) ) {
192
-            /* @var WP_Error $result */
193
-            return $this->app->response()->error( $result );
194
-        }
195
-
196
-        return $this->app->response()->success( $result );
197
-    }
198
-
199
-    /**
200
-     * Removes the post from the tree.
201
-     *
202
-     * Called the delete_post hook.
203
-     *
204
-     * @param int $post_id Post ID.
205
-     *
206
-     * @return boolean
207
-     */
208
-    public function delete_post( $post_id ) {
209
-        if ( wp_is_post_revision( $post_id ) ) {
210
-            return;
211
-        }
212
-
213
-        if ( ! $this->app->semaphore()->is_open() ) {
214
-            return $this->app->response()->error( new WP_Error(
215
-                'semaphore_locked',
216
-                sprintf( __( '%s : Semaphore is locked, import/export already in progress.', 'writing-on-github' ), 'Controller::delete_post()' )
217
-            ) );
218
-        }
219
-
220
-        $this->app->semaphore()->lock();
221
-        $result = $this->app->export()->delete( $post_id );
222
-        $this->app->semaphore()->unlock();
223
-
224
-        if ( is_wp_error( $result ) ) {
225
-            /* @var WP_Error $result */
226
-            return $this->app->response()->error( $result );
227
-        }
228
-
229
-        return $this->app->response()->success( $result );
230
-    }
231
-
232
-    /**
233
-     * Indicates we're running our own AJAX hook
234
-     * and thus should respond with JSON, rather
235
-     * than just returning data.
236
-     */
237
-    protected function set_ajax() {
238
-        if ( ! defined( 'WOGH_AJAX' ) ) {
239
-            define( 'WOGH_AJAX', true );
240
-        }
241
-    }
12
+	/**
13
+	 * Application container.
14
+	 *
15
+	 * @var Writing_On_GitHub
16
+	 */
17
+	public $app;
18
+
19
+	/**
20
+	 * Instantiates a new Controller object
21
+	 *
22
+	 * @param Writing_On_GitHub $app Applicatio container.
23
+	 */
24
+	public function __construct( Writing_On_GitHub $app ) {
25
+		$this->app = $app;
26
+	}
27
+
28
+	/**
29
+	 * Webhook callback as triggered from GitHub push.
30
+	 *
31
+	 * Reads the Webhook payload and syncs posts as necessary.
32
+	 *
33
+	 * @return boolean
34
+	 */
35
+	public function pull_posts() {
36
+		$this->set_ajax();
37
+		if ( ! $this->app->semaphore()->is_open() ) {
38
+			return $this->app->response()->error( new WP_Error(
39
+				'semaphore_locked',
40
+				sprintf( __( '%s : Semaphore is locked, import/export already in progress.', 'writing-on-github' ), 'Controller::pull_posts()' )
41
+			) );
42
+		}
43
+
44
+		if ( ! $this->app->request()->is_secret_valid() ) {
45
+			return $this->app->response()->error( new WP_Error(
46
+				'invalid_headers',
47
+				__( 'Failed to validate secret.', 'writing-on-github' )
48
+			) );
49
+		}
50
+
51
+		// ping
52
+		if ( $this->app->request()->is_ping() ) {
53
+			return $this->app->response()->success( __( 'Wordpress is ready.', 'writing-on-github' ) );
54
+		}
55
+
56
+		// push
57
+		if ( ! $this->app->request()->is_push() ) {
58
+			return $this->app->response()->error( new WP_Error(
59
+				'invalid_headers',
60
+				__( 'Failed to validate webhook event.', 'writing-on-github' )
61
+			) );
62
+		}
63
+		$payload = $this->app->request()->payload();
64
+
65
+		if ( ! $payload->should_import() ) {
66
+			return $this->app->response()->error( new WP_Error(
67
+				'invalid_payload',
68
+				sprintf(
69
+					__( "%s won't be imported.", 'writing-on-github' ),
70
+					strtolower( $payload->get_commit_id() ) ? : '[Missing Commit ID]'
71
+				)
72
+			) );
73
+		}
74
+
75
+		$this->app->semaphore()->lock();
76
+		remove_action( 'save_post', array( $this, 'export_post' ) );
77
+		remove_action( 'delete_post', array( $this, 'delete_post' ) );
78
+
79
+		$result = $this->app->import()->payload( $payload );
80
+
81
+		$this->app->semaphore()->unlock();
82
+
83
+		if ( is_wp_error( $result ) ) {
84
+			/* @var WP_Error $result */
85
+			return $this->app->response()->error( $result );
86
+		}
87
+
88
+		return $this->app->response()->success( $result );
89
+	}
90
+
91
+	/**
92
+	 * Imports posts from the current master branch.
93
+	 *
94
+	 * @return boolean
95
+	 */
96
+	public function import_master( $user_id = 0 ) {
97
+		if ( ! $this->app->semaphore()->is_open() ) {
98
+			return $this->app->response()->error( new WP_Error(
99
+				'semaphore_locked',
100
+				sprintf( __( '%s : Semaphore is locked, import/export already in progress.', 'writing-on-github' ), 'Controller::import_master()' )
101
+			) );
102
+		}
103
+
104
+		$this->app->semaphore()->lock();
105
+		remove_action( 'save_post', array( $this, 'export_post' ) );
106
+		remove_action( 'save_post', array( $this, 'delete_post' ) );
107
+
108
+		if ( $user_id ) {
109
+			wp_set_current_user( $user_id );
110
+		}
111
+
112
+		$result = $this->app->import()->master();
113
+
114
+		$this->app->semaphore()->unlock();
115
+
116
+		if ( is_wp_error( $result ) ) {
117
+			/* @var WP_Error $result */
118
+			update_option( '_wogh_import_error', $result->get_error_message() );
119
+
120
+			return $this->app->response()->error( $result );
121
+		}
122
+
123
+		update_option( '_wogh_import_complete', 'yes' );
124
+
125
+		return $this->app->response()->success( $result );
126
+	}
127
+
128
+	/**
129
+	 * Export all the posts in the database to GitHub.
130
+	 *
131
+	 * @param  int        $user_id
132
+	 * @param  boolean    $force
133
+	 * @return boolean
134
+	 */
135
+	public function export_all( $user_id = 0, $force = false ) {
136
+		if ( ! $this->app->semaphore()->is_open() ) {
137
+			return $this->app->response()->error( new WP_Error(
138
+				'semaphore_locked',
139
+				sprintf( __( '%s : Semaphore is locked, import/export already in progress.', 'writing-on-github' ), 'Controller::export_all()' )
140
+			) );
141
+		}
142
+
143
+		$this->app->semaphore()->lock();
144
+
145
+		if ( $user_id ) {
146
+			wp_set_current_user( $user_id );
147
+		}
148
+
149
+		$result = $this->app->export()->full($force);
150
+		$this->app->semaphore()->unlock();
151
+
152
+		// Maybe move option updating out of this class/upgrade message display?
153
+		if ( is_wp_error( $result ) ) {
154
+			/* @var WP_Error $result */
155
+			update_option( '_wogh_export_error', $result->get_error_message() );
156
+
157
+			return $this->app->response()->error( $result );
158
+		} else {
159
+			update_option( '_wogh_export_complete', 'yes' );
160
+			update_option( '_wogh_fully_exported', 'yes' );
161
+
162
+			return $this->app->response()->success( $result );
163
+		}
164
+	}
165
+
166
+	/**
167
+	 * Exports a single post to GitHub by ID.
168
+	 *
169
+	 * Called on the save_post hook.
170
+	 *
171
+	 * @param int $post_id Post ID.
172
+	 *
173
+	 * @return boolean
174
+	 */
175
+	public function export_post( $post_id ) {
176
+		if ( wp_is_post_revision( $post_id ) ) {
177
+			return;
178
+		}
179
+
180
+		if ( ! $this->app->semaphore()->is_open() ) {
181
+			return $this->app->response()->error( new WP_Error(
182
+				'semaphore_locked',
183
+				sprintf( __( '%s : Semaphore is locked, import/export already in progress.', 'writing-on-github' ), 'Controller::export_post()' )
184
+			) );
185
+		}
186
+
187
+		$this->app->semaphore()->lock();
188
+		$result = $this->app->export()->update( $post_id );
189
+		$this->app->semaphore()->unlock();
190
+
191
+		if ( is_wp_error( $result ) ) {
192
+			/* @var WP_Error $result */
193
+			return $this->app->response()->error( $result );
194
+		}
195
+
196
+		return $this->app->response()->success( $result );
197
+	}
198
+
199
+	/**
200
+	 * Removes the post from the tree.
201
+	 *
202
+	 * Called the delete_post hook.
203
+	 *
204
+	 * @param int $post_id Post ID.
205
+	 *
206
+	 * @return boolean
207
+	 */
208
+	public function delete_post( $post_id ) {
209
+		if ( wp_is_post_revision( $post_id ) ) {
210
+			return;
211
+		}
212
+
213
+		if ( ! $this->app->semaphore()->is_open() ) {
214
+			return $this->app->response()->error( new WP_Error(
215
+				'semaphore_locked',
216
+				sprintf( __( '%s : Semaphore is locked, import/export already in progress.', 'writing-on-github' ), 'Controller::delete_post()' )
217
+			) );
218
+		}
219
+
220
+		$this->app->semaphore()->lock();
221
+		$result = $this->app->export()->delete( $post_id );
222
+		$this->app->semaphore()->unlock();
223
+
224
+		if ( is_wp_error( $result ) ) {
225
+			/* @var WP_Error $result */
226
+			return $this->app->response()->error( $result );
227
+		}
228
+
229
+		return $this->app->response()->success( $result );
230
+	}
231
+
232
+	/**
233
+	 * Indicates we're running our own AJAX hook
234
+	 * and thus should respond with JSON, rather
235
+	 * than just returning data.
236
+	 */
237
+	protected function set_ajax() {
238
+		if ( ! defined( 'WOGH_AJAX' ) ) {
239
+			define( 'WOGH_AJAX', true );
240
+		}
241
+	}
242 242
 }
Please login to merge, or discard this patch.
lib/cli.php 1 patch
Indentation   +146 added lines, -146 removed lines patch added patch discarded remove patch
@@ -9,150 +9,150 @@
 block discarded – undo
9 9
  */
10 10
 class Writing_On_GitHub_CLI extends WP_CLI_Command {
11 11
 
12
-    /**
13
-     * Application container.
14
-     *
15
-     * @var Writing_On_GitHub
16
-     */
17
-    protected $app;
18
-
19
-    /**
20
-     * Grab the Application container on instantiation.
21
-     */
22
-    public function __construct() {
23
-        $this->app = Writing_On_GitHub::$instance;
24
-    }
25
-
26
-    /**
27
-     * Exports an individual post
28
-     * all your posts to GitHub
29
-     *
30
-     * ## OPTIONS
31
-     *
32
-     * <post_id|all>
33
-     * : The post ID to export or 'all' for full site
34
-     *
35
-     * <user_id>
36
-     * : The user ID you'd like to save the commit as
37
-     *
38
-     * ## EXAMPLES
39
-     *
40
-     *     wp wogh export all 1
41
-     *     wp wogh export 1 1
42
-     *
43
-     * @synopsis <post_id|all> <user_id>
44
-     *
45
-     * @param array $args Command arguments.
46
-     */
47
-    public function export( $args ) {
48
-        list( $post_id, $user_id ) = $args;
49
-
50
-        if ( ! is_numeric( $user_id ) ) {
51
-            WP_CLI::error( __( 'Invalid user ID', 'writing-on-github' ) );
52
-        }
53
-
54
-        $this->app->export()->set_user( $user_id );
55
-
56
-        if ( 'all' === $post_id ) {
57
-            WP_CLI::line( __( 'Starting full export to GitHub.', 'writing-on-github' ) );
58
-            $this->app->controller()->export_all();
59
-        } elseif ( is_numeric( $post_id ) ) {
60
-            WP_CLI::line(
61
-                sprintf(
62
-                    __( 'Exporting post ID to GitHub: %d', 'writing-on-github' ),
63
-                    $post_id
64
-                )
65
-            );
66
-            $this->app->controller()->export_post( (int) $post_id );
67
-        } else {
68
-            WP_CLI::error( __( 'Invalid post ID', 'writing-on-github' ) );
69
-        }
70
-    }
71
-
72
-    /**
73
-     * Imports the post in your GitHub repo
74
-     * into your WordPress blog
75
-     *
76
-     * ## OPTIONS
77
-     *
78
-     * <user_id>
79
-     * : The user ID you'd like to save the commit as
80
-     *
81
-     * ## EXAMPLES
82
-     *
83
-     *     wp wogh import 1
84
-     *
85
-     * @synopsis <user_id>
86
-     *
87
-     * @param array $args Command arguments.
88
-     */
89
-    public function import( $args ) {
90
-        list( $user_id ) = $args;
91
-
92
-        if ( ! is_numeric( $user_id ) ) {
93
-            WP_CLI::error( __( 'Invalid user ID', 'writing-on-github' ) );
94
-        }
95
-
96
-        update_option( '_wogh_export_user_id', (int) $user_id );
97
-
98
-        WP_CLI::line( __( 'Starting import from GitHub.', 'writing-on-github' ) );
99
-
100
-        $this->app->controller()->import_master();
101
-    }
102
-
103
-    /**
104
-     * Fetches the provided sha or the repository's
105
-     * master branch and caches it.
106
-     *
107
-     * ## OPTIONS
108
-     *
109
-     * <user_id>
110
-     * : The user ID you'd like to save the commit as
111
-     *
112
-     * ## EXAMPLES
113
-     *
114
-     *     wp wogh prime --branch=master
115
-     *     wp wogh prime --sha=<commit_sha>
116
-     *
117
-     * @synopsis [--sha=<commit_sha>] [--branch]
118
-     *
119
-     * @param array $args Command arguments.
120
-     * @param array $assoc_args Command associated arguments.
121
-     */
122
-    public function prime( $args, $assoc_args ) {
123
-        if ( isset( $assoc_args['branch'] ) ) {
124
-            WP_CLI::line( __( 'Starting branch import.', 'writing-on-github' ) );
125
-
126
-            $commit = $this->app->api()->fetch()->master();
127
-
128
-            if ( is_wp_error( $commit ) ) {
129
-                WP_CLI::error(
130
-                    sprintf(
131
-                        __( 'Failed to import and cache branch with error: %s', 'writing-on-github' ),
132
-                        $commit->get_error_message()
133
-                    )
134
-                );
135
-            } else {
136
-                WP_CLI::success(
137
-                    sprintf(
138
-                        __( 'Successfully imported and cached commit %s from branch.', 'writing-on-github' ),
139
-                        $commit->sha()
140
-                    )
141
-                );
142
-            }
143
-        } else if ( isset( $assoc_args['sha'] ) ) {
144
-            WP_CLI::line( 'Starting sha import.' );
145
-
146
-            $commit = $this->app->api()->fetch()->commit( $assoc_args['sha'] );
147
-
148
-            WP_CLI::success(
149
-                sprintf(
150
-                    __( 'Successfully imported and cached commit %s.', 'writing-on-github' ),
151
-                    $commit->sha()
152
-                )
153
-            );
154
-        } else {
155
-            WP_CLI::error( 'Invalid fetch.' );
156
-        }
157
-    }
12
+	/**
13
+	 * Application container.
14
+	 *
15
+	 * @var Writing_On_GitHub
16
+	 */
17
+	protected $app;
18
+
19
+	/**
20
+	 * Grab the Application container on instantiation.
21
+	 */
22
+	public function __construct() {
23
+		$this->app = Writing_On_GitHub::$instance;
24
+	}
25
+
26
+	/**
27
+	 * Exports an individual post
28
+	 * all your posts to GitHub
29
+	 *
30
+	 * ## OPTIONS
31
+	 *
32
+	 * <post_id|all>
33
+	 * : The post ID to export or 'all' for full site
34
+	 *
35
+	 * <user_id>
36
+	 * : The user ID you'd like to save the commit as
37
+	 *
38
+	 * ## EXAMPLES
39
+	 *
40
+	 *     wp wogh export all 1
41
+	 *     wp wogh export 1 1
42
+	 *
43
+	 * @synopsis <post_id|all> <user_id>
44
+	 *
45
+	 * @param array $args Command arguments.
46
+	 */
47
+	public function export( $args ) {
48
+		list( $post_id, $user_id ) = $args;
49
+
50
+		if ( ! is_numeric( $user_id ) ) {
51
+			WP_CLI::error( __( 'Invalid user ID', 'writing-on-github' ) );
52
+		}
53
+
54
+		$this->app->export()->set_user( $user_id );
55
+
56
+		if ( 'all' === $post_id ) {
57
+			WP_CLI::line( __( 'Starting full export to GitHub.', 'writing-on-github' ) );
58
+			$this->app->controller()->export_all();
59
+		} elseif ( is_numeric( $post_id ) ) {
60
+			WP_CLI::line(
61
+				sprintf(
62
+					__( 'Exporting post ID to GitHub: %d', 'writing-on-github' ),
63
+					$post_id
64
+				)
65
+			);
66
+			$this->app->controller()->export_post( (int) $post_id );
67
+		} else {
68
+			WP_CLI::error( __( 'Invalid post ID', 'writing-on-github' ) );
69
+		}
70
+	}
71
+
72
+	/**
73
+	 * Imports the post in your GitHub repo
74
+	 * into your WordPress blog
75
+	 *
76
+	 * ## OPTIONS
77
+	 *
78
+	 * <user_id>
79
+	 * : The user ID you'd like to save the commit as
80
+	 *
81
+	 * ## EXAMPLES
82
+	 *
83
+	 *     wp wogh import 1
84
+	 *
85
+	 * @synopsis <user_id>
86
+	 *
87
+	 * @param array $args Command arguments.
88
+	 */
89
+	public function import( $args ) {
90
+		list( $user_id ) = $args;
91
+
92
+		if ( ! is_numeric( $user_id ) ) {
93
+			WP_CLI::error( __( 'Invalid user ID', 'writing-on-github' ) );
94
+		}
95
+
96
+		update_option( '_wogh_export_user_id', (int) $user_id );
97
+
98
+		WP_CLI::line( __( 'Starting import from GitHub.', 'writing-on-github' ) );
99
+
100
+		$this->app->controller()->import_master();
101
+	}
102
+
103
+	/**
104
+	 * Fetches the provided sha or the repository's
105
+	 * master branch and caches it.
106
+	 *
107
+	 * ## OPTIONS
108
+	 *
109
+	 * <user_id>
110
+	 * : The user ID you'd like to save the commit as
111
+	 *
112
+	 * ## EXAMPLES
113
+	 *
114
+	 *     wp wogh prime --branch=master
115
+	 *     wp wogh prime --sha=<commit_sha>
116
+	 *
117
+	 * @synopsis [--sha=<commit_sha>] [--branch]
118
+	 *
119
+	 * @param array $args Command arguments.
120
+	 * @param array $assoc_args Command associated arguments.
121
+	 */
122
+	public function prime( $args, $assoc_args ) {
123
+		if ( isset( $assoc_args['branch'] ) ) {
124
+			WP_CLI::line( __( 'Starting branch import.', 'writing-on-github' ) );
125
+
126
+			$commit = $this->app->api()->fetch()->master();
127
+
128
+			if ( is_wp_error( $commit ) ) {
129
+				WP_CLI::error(
130
+					sprintf(
131
+						__( 'Failed to import and cache branch with error: %s', 'writing-on-github' ),
132
+						$commit->get_error_message()
133
+					)
134
+				);
135
+			} else {
136
+				WP_CLI::success(
137
+					sprintf(
138
+						__( 'Successfully imported and cached commit %s from branch.', 'writing-on-github' ),
139
+						$commit->sha()
140
+					)
141
+				);
142
+			}
143
+		} else if ( isset( $assoc_args['sha'] ) ) {
144
+			WP_CLI::line( 'Starting sha import.' );
145
+
146
+			$commit = $this->app->api()->fetch()->commit( $assoc_args['sha'] );
147
+
148
+			WP_CLI::success(
149
+				sprintf(
150
+					__( 'Successfully imported and cached commit %s.', 'writing-on-github' ),
151
+					$commit->sha()
152
+				)
153
+			);
154
+		} else {
155
+			WP_CLI::error( 'Invalid fetch.' );
156
+		}
157
+	}
158 158
 }
Please login to merge, or discard this patch.
lib/api.php 1 patch
Indentation   +48 added lines, -48 removed lines patch added patch discarded remove patch
@@ -9,59 +9,59 @@
 block discarded – undo
9 9
  */
10 10
 class Writing_On_GitHub_Api {
11 11
 
12
-    /**
13
-     * Application container.
14
-     *
15
-     * @var Writing_On_GitHub
16
-     */
17
-    protected $app;
12
+	/**
13
+	 * Application container.
14
+	 *
15
+	 * @var Writing_On_GitHub
16
+	 */
17
+	protected $app;
18 18
 
19
-    /**
20
-     * GitHub fetch client.
21
-     *
22
-     * @var Writing_On_GitHub_Fetch_Client
23
-     */
24
-    protected $fetch;
19
+	/**
20
+	 * GitHub fetch client.
21
+	 *
22
+	 * @var Writing_On_GitHub_Fetch_Client
23
+	 */
24
+	protected $fetch;
25 25
 
26
-    /**
27
-     * Github persist client.
28
-     *
29
-     * @var Writing_On_GitHub_Persist_Client
30
-     */
31
-    protected $persist;
26
+	/**
27
+	 * Github persist client.
28
+	 *
29
+	 * @var Writing_On_GitHub_Persist_Client
30
+	 */
31
+	protected $persist;
32 32
 
33
-    /**
34
-     * Instantiates a new Api object.
35
-     *
36
-     * @param Writing_On_GitHub $app Application container.
37
-     */
38
-    public function __construct( Writing_On_GitHub $app ) {
39
-        $this->app = $app;
40
-    }
33
+	/**
34
+	 * Instantiates a new Api object.
35
+	 *
36
+	 * @param Writing_On_GitHub $app Application container.
37
+	 */
38
+	public function __construct( Writing_On_GitHub $app ) {
39
+		$this->app = $app;
40
+	}
41 41
 
42
-    /**
43
-     * Lazy-load fetch client.
44
-     *
45
-     * @return Writing_On_GitHub_Fetch_Client
46
-     */
47
-    public function fetch() {
48
-        if ( ! $this->fetch ) {
49
-            $this->fetch = new Writing_On_GitHub_Fetch_Client( $this->app );
50
-        }
42
+	/**
43
+	 * Lazy-load fetch client.
44
+	 *
45
+	 * @return Writing_On_GitHub_Fetch_Client
46
+	 */
47
+	public function fetch() {
48
+		if ( ! $this->fetch ) {
49
+			$this->fetch = new Writing_On_GitHub_Fetch_Client( $this->app );
50
+		}
51 51
 
52
-        return $this->fetch;
53
-    }
52
+		return $this->fetch;
53
+	}
54 54
 
55
-    /**
56
-     * Lazy-load persist client.
57
-     *
58
-     * @return Writing_On_GitHub_Persist_Client
59
-     */
60
-    public function persist() {
61
-        if ( ! $this->persist ) {
62
-            $this->persist = new Writing_On_GitHub_Persist_Client( $this->app );
63
-        }
55
+	/**
56
+	 * Lazy-load persist client.
57
+	 *
58
+	 * @return Writing_On_GitHub_Persist_Client
59
+	 */
60
+	public function persist() {
61
+		if ( ! $this->persist ) {
62
+			$this->persist = new Writing_On_GitHub_Persist_Client( $this->app );
63
+		}
64 64
 
65
-        return $this->persist;
66
-    }
65
+		return $this->persist;
66
+	}
67 67
 }
Please login to merge, or discard this patch.
lib/payload.php 1 patch
Indentation   +112 added lines, -112 removed lines patch added patch discarded remove patch
@@ -9,116 +9,116 @@
 block discarded – undo
9 9
  */
10 10
 class Writing_On_GitHub_Payload {
11 11
 
12
-    /**
13
-     * Application container.
14
-     *
15
-     * @var Writing_On_GitHub
16
-     */
17
-    protected $app;
18
-
19
-    /**
20
-     * Payload data.
21
-     *
22
-     * @var stdClass
23
-     */
24
-    protected $data;
25
-
26
-    /**
27
-     * Writing_On_GitHub_Payload constructor.
28
-     *
29
-     * @param Writing_On_GitHub $app      Application container.
30
-     * @param string                $raw_data Raw request data.
31
-     */
32
-    public function __construct( Writing_On_GitHub $app, $raw_data ) {
33
-        $this->app  = $app;
34
-        $this->data = json_decode( $raw_data );
35
-    }
36
-
37
-    /**
38
-     * Returns whether payload should be imported.
39
-     *
40
-     * @return bool
41
-     */
42
-    public function should_import() {
43
-        // @todo how do we get this without importing the whole api object just for this?
44
-        if ( strtolower( $this->data->repository->full_name ) !== strtolower( $this->app->api()->fetch()->repository() ) ) {
45
-            return false;
46
-        }
47
-
48
-        // The last term in the ref is the payload_branch name.
49
-        $refs   = explode( '/', $this->data->ref );
50
-        $payload_branch = array_pop( $refs );
51
-
52
-        $branch = $this->app->api()->fetch()->branch();
53
-
54
-        if ( $branch !== $payload_branch ) {
55
-            return false;
56
-        }
57
-
58
-        // We add a tag to commits we push out, so we shouldn't pull them in again.
59
-        $tag = apply_filters( 'wogh_commit_msg_tag', 'wogh' );
60
-
61
-        if ( ! $tag ) {
62
-            throw new Exception( __( 'Commit message tag not set. Filter `wogh_commit_msg_tag` misconfigured.', 'writing-on-github' ) );
63
-        }
64
-
65
-        if ( $tag === substr( $this->message(), -1 * strlen( $tag ) ) ) {
66
-            return false;
67
-        }
68
-
69
-        if ( ! $this->get_commit_id() ) {
70
-            return false;
71
-        }
72
-
73
-        return true;
74
-    }
75
-
76
-    public function get_before_commit_id() {
77
-        return $this->data->before ? $this->data->before : null;
78
-    }
79
-
80
-    /**
81
-     * Returns the sha of the head commit.
82
-     *
83
-     * @return string
84
-     */
85
-    public function get_commit_id() {
86
-        return $this->data->head_commit ? $this->data->head_commit->id : null;
87
-    }
88
-
89
-    /**
90
-     * Returns the email address for the commit author.
91
-     *
92
-     * @return string
93
-     */
94
-    public function get_author_email() {
95
-        return $this->data->head_commit->author->email;
96
-    }
97
-
98
-    /**
99
-     * Returns array commits for the payload.
100
-     *
101
-     * @return array
102
-     */
103
-    public function get_commits() {
104
-        return $this->data->commits;
105
-    }
106
-
107
-    /**
108
-     * Returns the repository's full name.
109
-     *
110
-     * @return string
111
-     */
112
-    public function get_repository_name() {
113
-        return $this->data->repository->full_name;
114
-    }
115
-
116
-    /**
117
-     * Returns the payload's commit message.
118
-     *
119
-     * @return string
120
-     */
121
-    protected function message() {
122
-        return $this->data->head_commit->message;
123
-    }
12
+	/**
13
+	 * Application container.
14
+	 *
15
+	 * @var Writing_On_GitHub
16
+	 */
17
+	protected $app;
18
+
19
+	/**
20
+	 * Payload data.
21
+	 *
22
+	 * @var stdClass
23
+	 */
24
+	protected $data;
25
+
26
+	/**
27
+	 * Writing_On_GitHub_Payload constructor.
28
+	 *
29
+	 * @param Writing_On_GitHub $app      Application container.
30
+	 * @param string                $raw_data Raw request data.
31
+	 */
32
+	public function __construct( Writing_On_GitHub $app, $raw_data ) {
33
+		$this->app  = $app;
34
+		$this->data = json_decode( $raw_data );
35
+	}
36
+
37
+	/**
38
+	 * Returns whether payload should be imported.
39
+	 *
40
+	 * @return bool
41
+	 */
42
+	public function should_import() {
43
+		// @todo how do we get this without importing the whole api object just for this?
44
+		if ( strtolower( $this->data->repository->full_name ) !== strtolower( $this->app->api()->fetch()->repository() ) ) {
45
+			return false;
46
+		}
47
+
48
+		// The last term in the ref is the payload_branch name.
49
+		$refs   = explode( '/', $this->data->ref );
50
+		$payload_branch = array_pop( $refs );
51
+
52
+		$branch = $this->app->api()->fetch()->branch();
53
+
54
+		if ( $branch !== $payload_branch ) {
55
+			return false;
56
+		}
57
+
58
+		// We add a tag to commits we push out, so we shouldn't pull them in again.
59
+		$tag = apply_filters( 'wogh_commit_msg_tag', 'wogh' );
60
+
61
+		if ( ! $tag ) {
62
+			throw new Exception( __( 'Commit message tag not set. Filter `wogh_commit_msg_tag` misconfigured.', 'writing-on-github' ) );
63
+		}
64
+
65
+		if ( $tag === substr( $this->message(), -1 * strlen( $tag ) ) ) {
66
+			return false;
67
+		}
68
+
69
+		if ( ! $this->get_commit_id() ) {
70
+			return false;
71
+		}
72
+
73
+		return true;
74
+	}
75
+
76
+	public function get_before_commit_id() {
77
+		return $this->data->before ? $this->data->before : null;
78
+	}
79
+
80
+	/**
81
+	 * Returns the sha of the head commit.
82
+	 *
83
+	 * @return string
84
+	 */
85
+	public function get_commit_id() {
86
+		return $this->data->head_commit ? $this->data->head_commit->id : null;
87
+	}
88
+
89
+	/**
90
+	 * Returns the email address for the commit author.
91
+	 *
92
+	 * @return string
93
+	 */
94
+	public function get_author_email() {
95
+		return $this->data->head_commit->author->email;
96
+	}
97
+
98
+	/**
99
+	 * Returns array commits for the payload.
100
+	 *
101
+	 * @return array
102
+	 */
103
+	public function get_commits() {
104
+		return $this->data->commits;
105
+	}
106
+
107
+	/**
108
+	 * Returns the repository's full name.
109
+	 *
110
+	 * @return string
111
+	 */
112
+	public function get_repository_name() {
113
+		return $this->data->repository->full_name;
114
+	}
115
+
116
+	/**
117
+	 * Returns the payload's commit message.
118
+	 *
119
+	 * @return string
120
+	 */
121
+	protected function message() {
122
+		return $this->data->head_commit->message;
123
+	}
124 124
 }
Please login to merge, or discard this patch.
lib/fileinfo.php 1 patch
Indentation   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -6,13 +6,13 @@
 block discarded – undo
6 6
  */
7 7
 class Writing_On_GitHub_File_Info {
8 8
 
9
-    public function __construct( stdClass $data ) {
10
-        $this->sha          = $data->sha;
11
-        $this->path         = $data->path;
12
-        $this->status       = $data->status;
13
-    }
9
+	public function __construct( stdClass $data ) {
10
+		$this->sha          = $data->sha;
11
+		$this->path         = $data->path;
12
+		$this->status       = $data->status;
13
+	}
14 14
 
15
-    public $sha;
16
-    public $path;
17
-    public $status;  // added removed modified
15
+	public $sha;
16
+	public $path;
17
+	public $status;  // added removed modified
18 18
 }
Please login to merge, or discard this patch.