PluginProbe ʕ •ᴥ•ʔ
Kubio AI Page Builder / trunk
Kubio AI Page Builder vtrunk
2.8.1 trunk 1.0.0 1.0.1 1.1.0 1.2.0 1.2.1 1.2.2 1.2.3 1.3.0 1.3.1 1.3.2 1.4.0 1.4.1 1.4.2 1.4.3 1.5.0 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.7.0 1.7.1 1.7.2 1.7.3 1.8.0 1.8.1 1.8.2 1.9.0 2.0.0 2.1.1 2.1.2 2.1.3 2.2.0 2.2.3 2.2.4 2.2.5 2.3.0 2.3.1 2.3.3 2.3.4 2.4.0 2.4.1 2.4.2 2.4.3 2.4.5 2.5.0 2.5.1 2.5.2 2.5.3 2.6.0 2.6.1 2.6.2 2.6.3 2.6.5 2.6.6 2.6.7 2.7.0 2.7.1 2.7.2 2.7.3 2.8.0
kubio / lib / api / kubio-cloud.php
kubio / lib / api Last commit date
multilanguage 1 year ago recommendations 2 months ago colibri.php 1 year ago contact-form.php 1 year ago entity.php 4 years ago get-body-class.php 1 year ago get-classic-page-template.php 1 year ago get-page-query.php 1 year ago get-page-title.php 1 year ago get-post-content.php 1 year ago get-post-styles.php 1 year ago index.php 11 months ago kubio-cloud.php 1 year ago page-templates.php 4 years ago save-template-parts-filter.php 1 year ago subscribe-form.php 4 years ago typekit.php 4 years ago update-settings-flags.php 1 year ago
kubio-cloud.php
94 lines
1 <?php
2
3 use Kubio\Core\Utils;
4 use Kubio\Flags;
5
6 add_action(
7 'rest_api_init',
8 function () {
9 $namespace = 'kubio/v1';
10
11 register_rest_route(
12 $namespace,
13 '/kubio-api-key',
14 array(
15 'methods' => 'GET',
16 'callback' => 'kubio_get_api_key',
17 'permission_callback' => function () {
18 return current_user_can( 'edit_theme_options' );
19 },
20 )
21 );
22
23 register_rest_route(
24 $namespace,
25 '/kubio-api-key',
26 array(
27 'methods' => 'POST',
28 'callback' => 'kubio_update_api_key',
29 'permission_callback' => function () {
30 return current_user_can( 'edit_theme_options' );
31 },
32 )
33 );
34 }
35 );
36
37 /**
38 * REST API Callback to get the API connection key, but also checks if the key is still valid.
39 *
40 * @param WP_REST_Request $data
41 * @return void
42 */
43 function kubio_get_api_key( WP_REST_Request $data ) {
44 $key = Flags::get( 'kubio_cloud_api_key' );
45
46 if ( empty( $key ) ) {
47
48 wp_send_json_error( __( 'Api key not found', 'kubio' ) );
49
50 }
51
52 $response = wp_remote_get(
53 Utils::getCloudURL( '/api/user/validate-api-key' ),
54 array(
55 'headers' => array(
56 'Content-Type' => 'application/json',
57 'X-Authorization' => $key,
58 ),
59 )
60 );
61
62 $body = wp_remote_retrieve_body( $response );
63 $code = wp_remote_retrieve_response_code( $response );
64 $decoded = json_decode( $body, true );
65
66 if ( $code === 200 && is_array( $decoded ) && $decoded['isValid'] && ! empty( $decoded['email'] ) ) {
67 wp_send_json_success(
68 array(
69 'email' => $decoded['email'],
70 'name' => $decoded['name'],
71 'role' => $decoded['role'],
72 'isValid' => true,
73 'key' => $key,
74 )
75 );
76 }
77 wp_send_json_error( __( 'Api key not found', 'kubio' ) );
78 }
79
80 /**
81 * Api callback to save the Kubio cloud API key.
82 *
83 * @param WP_REST_Request $data
84 * @return void
85 */
86 function kubio_update_api_key( WP_REST_Request $data ) {
87
88 if ( isset( $data['key'] ) ) {
89 Flags::set( 'kubio_cloud_api_key', sanitize_text_field( $data['key'] ) );
90 wp_send_json_success();
91 }
92 wp_send_json_error( __( 'Api key not found', 'kubio' ) );
93 }
94