PluginProbe ʕ •ᴥ•ʔ
JetFormBuilder — Dynamic Blocks Form Builder / 3.2.3
JetFormBuilder — Dynamic Blocks Form Builder v3.2.3
3.6.3.1 3.6.3 3.6.2.2 3.6.2.1 3.6.2 3.6.1.1 3.6.1 3.6.0.1 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.3.0 1.3.1 1.3.2 1.3.3 1.4.0 1.4.1 1.4.2 1.4.3 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.1.0 2.1.1 2.1.10 2.1.11 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 3.0.0 3.0.0.1 3.0.0.2 3.0.0.3 3.0.1 3.0.1.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.0.1 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.2 3.2.3 3.3.0 3.3.1 3.3.2 3.3.3 3.3.3.1 3.3.4 3.3.4.1 3.3.4.2 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 3.4.5.1 3.4.5.2 3.4.6 3.4.7 3.4.7.1 3.5.0 3.5.1 3.5.1.1 3.5.1.2 3.5.2 3.5.2.1 3.5.3 3.5.4 3.5.5 3.5.6 3.5.6.1 3.5.6.2 3.5.6.3 3.6.0
jetformbuilder / modules / form-record / rest-endpoints / mark-view-record-base-endpoint.php
jetformbuilder / modules / form-record / rest-endpoints Last commit date
delete-form-record-endpoint.php 2 years ago fetch-filters-endpoint.php 2 years ago fetch-records-count-endpoint.php 2 years ago fetch-records-fields-box-endpoint.php 2 years ago fetch-records-page-endpoint.php 2 years ago mark-as-not-viewed-record-endpoint.php 2 years ago mark-as-viewed-record-endpoint.php 2 years ago mark-view-record-base-endpoint.php 2 years ago
mark-view-record-base-endpoint.php
98 lines
1 <?php
2
3
4 namespace JFB_Modules\Form_Record\Rest_Endpoints;
5
6 use JFB_Modules\Form_Record\Query_Views\Record_View;
7 use JFB_Modules\Form_Record\Query_Views\Record_View_Count;
8 use JFB_Modules\Form_Record\Admin\Table_Views\Records_Table_View;
9 use Jet_Form_Builder\Db_Queries\Exceptions\Sql_Exception;
10 use Jet_Form_Builder\Db_Queries\Views\View_Base;
11 use Jet_Form_Builder\Exceptions\Query_Builder_Exception;
12 use Jet_Form_Builder\Rest_Api\Rest_Api_Endpoint_Base;
13 use Jet_Form_Builder\Rest_Api\Traits;
14
15 // If this file is called directly, abort.
16 if ( ! defined( 'WPINC' ) ) {
17 die;
18 }
19
20 abstract class Mark_View_Record_Base_Endpoint extends Rest_Api_Endpoint_Base {
21
22 use Traits\Paginated_Args;
23
24 public static function get_methods() {
25 return \WP_REST_Server::CREATABLE;
26 }
27
28 public function check_permission(): bool {
29 return current_user_can( 'manage_options' );
30 }
31
32 abstract protected function is_viewed(): bool;
33
34 public function run_callback( \WP_REST_Request $request ) {
35 $body = $request->get_json_params();
36 $view = new Records_Table_View();
37
38 $args = View_Base::get_paginated_args( $this->get_paginate_args( $request ) );
39
40 $where = array(
41 array(
42 'type' => 'in',
43 'values' => array( 'id', $body['checked'] ?? array() ),
44 ),
45 );
46
47 try {
48 Record_View::update(
49 array( 'is_viewed' => (int) $this->is_viewed() ),
50 $where
51 );
52 } catch ( Sql_Exception $exception ) {
53 if ( ! $this->check_is_updated( $where ) ) {
54 return new \WP_REST_Response(
55 array(
56 'message' => $exception->getMessage(),
57 'data' => $exception->get_additional(),
58 ),
59 503
60 );
61 }
62 }
63 $list = $view->get_raw_list( $args );
64
65 return new \WP_REST_Response(
66 array(
67 'message' => __( 'Successfully updated!', 'jet-form-builder' ),
68 'list' => $view->prepare_list( $list ),
69 'total' => Record_View_Count::count( $args ),
70 )
71 );
72 }
73
74 /**
75 * Return true if rows was updated successfully
76 *
77 * @param $where
78 *
79 * @return bool
80 */
81 private function check_is_updated( $where ): bool {
82 $where = array_merge(
83 array(
84 'is_viewed' => (int) ( ! $this->is_viewed() ),
85 ),
86 $where
87 );
88
89 try {
90 Record_View::find( $where )->query()->query_all();
91 } catch ( Query_Builder_Exception $exception ) {
92 return true;
93 }
94
95 return false;
96 }
97 }
98