Code Duplication    Length = 27-28 lines in 2 locations

src/wordlift/videoobject/api/class-rest-controller.php 1 location

@@ 72-98 (lines=27) @@
69
		);
70
	}
71
72
	private function register_save_all_videos_route() {
73
		register_rest_route(
74
			WL_REST_ROUTE_DEFAULT_NAMESPACE,
75
			'/videos/save',
76
			array(
77
				'methods'             => WP_REST_Server::CREATABLE,
78
				'callback'            => array( $this, 'save_all_videos' ),
79
				'permission_callback' => function () {
80
					return current_user_can( 'manage_options' );
81
				},
82
				'args'                => array(
83
					'post_id' => array(
84
						'validate_callback' => function ( $param, $request, $key ) {
85
							return is_numeric( $param ) && $param;
86
						},
87
						'required'          => true,
88
					),
89
					'videos'  => array(
90
						'validate_callback' => function ( $param, $request, $key ) {
91
							return is_array( $param ) && $param;
92
						},
93
						'required'          => true,
94
					),
95
				),
96
			)
97
		);
98
	}
99
100
101
}

src/wordlift/vocabulary/api/class-tag-rest-endpoint.php 1 location

@@ 37-64 (lines=28) @@
34
	public function register_routes() {
35
		$that = $this;
36
		add_action( 'rest_api_init',
37
			function () use ( $that ) {
38
				register_rest_route(
39
					Api_Config::REST_NAMESPACE,
40
					'/tags',
41
					array(
42
						'methods'             => WP_REST_Server::CREATABLE,
43
						'callback'            => array( $that, 'get_tags' ),
44
						//@todo : review the permission level
45
						'permission_callback' => function () {
46
							return current_user_can( 'manage_options' );
47
						},
48
						'args'                => array(
49
							'limit'  => array(
50
								'validate_callback' => function ( $param, $request, $key ) {
51
									return is_numeric( $param ) && $param;
52
								},
53
								'required'          => true,
54
							),
55
							'offset' => array(
56
								'validate_callback' => function ( $param, $request, $key ) {
57
									return is_numeric( $param );
58
								},
59
								'required'          => true,
60
							),
61
						),
62
					)
63
				);
64
			} );
65
66
67
	}