PluginProbe ʕ •ᴥ•ʔ
Kubio AI Page Builder / 2.2.0
Kubio AI Page Builder v2.2.0
2.8.3 2.8.2 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
prompts 2 years ago colibri.php 2 years ago contact-form.php 2 years ago entity.php 4 years ago get-body-class.php 4 years ago get-classic-page-template.php 4 years ago get-page-query.php 4 years ago get-page-title.php 4 years ago get-post-content.php 4 years ago get-post-styles.php 4 years ago index.php 2 years ago kubio-cloud.php 2 years ago page-templates.php 4 years ago save-template-parts-filter.php 2 years ago subscribe-form.php 4 years ago typekit.php 4 years ago update-settings-flags.php 2 years ago
kubio-cloud.php
95 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 /**
39 * REST API Callback to get the API connection key, but also checks if the key is still valid.
40 *
41 * @param WP_REST_Request $data
42 * @return void
43 */
44 function kubio_get_api_key( WP_REST_Request $data ) {
45 $key = Flags::get( 'kubio_cloud_api_key' );
46
47 if ( empty( $key ) ) {
48
49 wp_send_json_error( __( 'Api key not found', 'kubio' ) );
50
51 }
52
53 $response = wp_remote_get(
54 Utils::getCloudURL( '/api/user/validate-api-key' ),
55 array(
56 'headers' => array(
57 'Content-Type' => 'application/json',
58 'X-Authorization' => $key,
59 ),
60 )
61 );
62
63 $body = wp_remote_retrieve_body( $response );
64 $code = wp_remote_retrieve_response_code( $response );
65 $decoded = json_decode( $body, true );
66
67 if ( $code === 200 && is_array( $decoded ) && $decoded['isValid'] && ! empty( $decoded['email'] ) ) {
68 wp_send_json_success(
69 array(
70 'email' => $decoded['email'],
71 'name' => $decoded['name'],
72 'role' => $decoded['role'],
73 'isValid' => true,
74 'key' => $key,
75 )
76 );
77 }
78 wp_send_json_error( __( 'Api key not found', 'kubio' ) );
79 }
80
81 /**
82 * Api callback to save the Kubio cloud API key.
83 *
84 * @param WP_REST_Request $data
85 * @return void
86 */
87 function kubio_update_api_key( WP_REST_Request $data ) {
88
89 if ( isset( $data['key'] ) ) {
90 Flags::set( 'kubio_cloud_api_key', sanitize_text_field( $data['key'] ) );
91 wp_send_json_success();
92 }
93 wp_send_json_error( __( 'Api key not found', 'kubio' ) );
94 }
95