PluginProbe
WCPOS – Point of Sale (POS) plugin for WooCommerce / 1.10.16
WCPOS – Point of Sale (POS) plugin for WooCommerce v1.10.16
1.10.18 1.10.17 1.10.16 1.10.15 1.10.13 1.10.14 1.10.12 1.10.11 1.10.10 1.10.9 1.10.8 untagged-3d9b7ccddc54df87c672 1.10.7 1.10.6 1.10.5 1.10.3 1.10.4 1.10.2 1.10.1 1.10.0 1.9.17 1.9.15 1.9.16 1.9.14 1.9.13 All 162 releases
woocommerce-pos / includes / Sync / Api.php

Api.php in WCPOS – Point of Sale (POS) plugin for WooCommerce 1.10.16, at includes/Sync/Api.php

75 lines 2.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Sync REST API registration.
4 *
5 * @package WCPOS\WooCommercePOS\Sync
6 */
7
8 namespace WCPOS\WooCommercePOS\Sync;
9
10 use WCPOS\WooCommercePOS\API\V2\Catalog_Proxy_Controller;
11 use WCPOS\WooCommercePOS\API\V2\Changes_Controller;
12 use WCPOS\WooCommercePOS\API\V2\Digests_Controller;
13 use WCPOS\WooCommercePOS\API\V2\Integrity_Controller;
14 use WCPOS\WooCommercePOS\API\V2\Orders_Controller;
15 use WCPOS\WooCommercePOS\API\V2\Resolve_Controller;
16 use WCPOS\WooCommercePOS\API\V2\Status_Controller;
17 use WCPOS\WooCommercePOS\API\V2\Uuid_Backfill_Controller;
18 use WCPOS\WooCommercePOS\API\V2\Variations_Controller;
19 use WCPOS\WooCommercePOS\API\V2\Write_Controller;
20
21 /**
22 * Sync REST API configuration and controller registration.
23 */
24 final class Api {
25 public const ROUTE_NAMESPACE = 'wcpos/v2';
26 public const ADMIN_OP_PATHS = array( 'uuid/backfill', 'orders/index/backfill', 'integrity/rebuild' );
27 public const UUID_META_KEY = '_woocommerce_pos_uuid';
28 // 5: (status, created_at) index on the mutations table for retention pruning.
29 public const SCHEMA_VERSION = '5';
30 public const SCHEMA_OPTION = 'wcpos_sync_schema_version';
31
32 /**
33 * Declare routes with special permission-gate handling.
34 *
35 * @return array<string, string[]> Route classifications.
36 */
37 public static function route_classifications(): array {
38 $admin_routes = array();
39
40 foreach ( self::ADMIN_OP_PATHS as $path ) {
41 $admin_routes[] = '/' . self::ROUTE_NAMESPACE . '/' . $path;
42 }
43
44 return array(
45 'admin_op' => $admin_routes,
46 'rewrite_exempt' => array( '/' . self::ROUTE_NAMESPACE . '/' ),
47 );
48 }
49
50 /**
51 * Register sync REST API controllers.
52 *
53 * @param array $controllers REST API controllers.
54 *
55 * @return array REST API controllers.
56 */
57 public static function register_controllers( array $controllers ): array {
58 Response_Telemetry::register_hooks();
59 Retry_After_Mirror::register_hooks();
60 Response_Envelope::register_hooks();
61 $controllers['sync-status'] = Status_Controller::class;
62 $controllers['sync-catalog'] = Catalog_Proxy_Controller::class;
63 $controllers['sync-orders'] = Orders_Controller::class;
64 $controllers['sync-changes'] = Changes_Controller::class;
65 $controllers['sync-digests'] = Digests_Controller::class;
66 $controllers['sync-integrity'] = Integrity_Controller::class;
67 $controllers['sync-uuid'] = Uuid_Backfill_Controller::class;
68 $controllers['sync-variations'] = Variations_Controller::class;
69 $controllers['sync-resolve'] = Resolve_Controller::class;
70 $controllers['sync-write'] = Write_Controller::class;
71
72 return $controllers;
73 }
74 }
75