Jake Vanderwerf
5 days ago 0dfe1d8afafc59c4a5559c498342668d5a58d6ef
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?php
 
use JVBase\meta\Meta;
use JVBase\registrar\Registrar;
use JVBase\rest\PermissionHandler;
use JVBase\rest\Rest;
use JVBase\rest\Route;
use JVBase\base\Site;
 
if (!defined('ABSPATH')) {
    exit;
}
 
/**
 * User Routes
 */
class UserRoutes extends Rest
{
    public function __construct()
    {
        $this->cacheName = 'user';
        $this->cacheTtl = WEEK_IN_SECONDS;
 
        parent::__construct();
 
    }
 
    public function registerRoutes(): void
    {
        // Standard login
        Route::for('user')
            ->post([$this, 'handleUpdate'])
            ->auth(PermissionHandler::combine(['user', 'nonce', ['actionNonce'=>'dash-']]))
            ->rateLimit()
            ->register();
    }
 
    public function handleUpdate(WP_REST_Request $request):WP_REST_Response
    {
        $data = $request->get_params();
        $user_id = get_current_user_id();
        if (!$user_id) {
            return $this->unauthorized();
        }
        if (!array_key_exists('changes', $data) || empty($data['changes'])) {
            return $this->success();
        }
 
        error_log('User route data: '.print_r($data, true));
        try {
            $meta = Meta::forUser($user_id);
            $meta->setAll($data['changes']);
            return $this->success();
        } catch (Exception $e) {
            return $this->error($e->getMessage());
        }
    }
}