Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 15
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
Set_Provider_Errors
0.00% covered (danger)
0.00%
0 / 15
0.00% covered (danger)
0.00%
0 / 1
12
0.00% covered (danger)
0.00%
0 / 1
 handle
0.00% covered (danger)
0.00%
0 / 15
0.00% covered (danger)
0.00%
0 / 1
12
1<?php
2
3namespace Automattic\Jetpack_Boost\Lib\Critical_CSS\Data_Sync_Actions;
4
5use Automattic\Jetpack\WP_JS_Data_Sync\Contracts\Data_Sync_Action;
6use Automattic\Jetpack_Boost\Lib\Critical_CSS\Critical_CSS_State;
7
8/**
9 * Critical CSS Action: Store errors for a provider.
10 */
11class Set_Provider_Errors implements Data_Sync_Action {
12    /**
13     * Handles the action logic.
14     *
15     * @param mixed            $data     JSON Data passed to the action.
16     * @param \WP_REST_Request $_request The request object.
17     */
18    public function handle( $data, $_request ) {
19        $state = new Critical_CSS_State();
20
21        if ( empty( $data['key'] ) || empty( $data['errors'] ) ) {
22            return array(
23                'success' => false,
24                'state'   => $state->get(),
25                'error'   => 'Invalid data',
26            );
27        }
28
29        $provider_key = sanitize_key( $data['key'] );
30        $errors       = $data['errors'];
31
32        $state->set_provider_errors( $provider_key, $errors );
33        $state->save();
34
35        return array(
36            'success' => true,
37            'state'   => $state->get(),
38        );
39    }
40}