Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 18
0.00% covered (danger)
0.00%
0 / 2
CRAP
0.00% covered (danger)
0.00%
0 / 1
LanguagesController
0.00% covered (danger)
0.00%
0 / 18
0.00% covered (danger)
0.00%
0 / 2
6
0.00% covered (danger)
0.00%
0 / 1
 register_routes
0.00% covered (danger)
0.00%
0 / 11
0.00% covered (danger)
0.00%
0 / 1
2
 get_languages
0.00% covered (danger)
0.00%
0 / 7
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3namespace NewfoldLabs\WP\Module\Onboarding\RestApi;
4
5use NewfoldLabs\WP\Module\Onboarding\Permissions;
6use NewfoldLabs\WP\Module\Onboarding\Services\LanguageService;
7
8/**
9 * Controller for handling language-related endpoints.
10 */
11class LanguagesController {
12
13    /**
14     * The namespace of this controller's route.
15     *
16     * @var string
17     */
18    protected $namespace = 'newfold-onboarding/v1';
19
20    /**
21     * The base of this controller's route.
22     *
23     * @var string
24     */
25    protected $rest_base = '/languages';
26
27    /**
28     * Register routes for LanguagesController.
29     */
30    public function register_routes() {
31        register_rest_route(
32            $this->namespace,
33            $this->rest_base,
34            array(
35                array(
36                    'methods'             => \WP_REST_Server::READABLE,
37                    'callback'            => array( $this, 'get_languages' ),
38                    'permission_callback' => array( Permissions::class, 'rest_is_authorized_admin' ),
39                ),
40            )
41        );
42    }
43
44    /**
45     * Get available languages in WordPress.
46     *
47     * @return WP_REST_Response
48     */
49    public function get_languages() {
50        // Use LanguageService to get languages
51        $languages = LanguageService::get_all_languages();
52
53        return new \WP_REST_Response(
54            array(
55                'languages' => $languages,
56            ),
57            200
58        );
59    }
60}