PluginProbe ʕ •ᴥ•ʔ
JetFormBuilder — Dynamic Blocks Form Builder / 3.6.4.2
JetFormBuilder — Dynamic Blocks Form Builder v3.6.4.2
3.6.5 3.6.4.2 3.6.4.1 3.6.4 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
traits 2 weeks ago delete-form-record-endpoint.php 2 weeks ago fetch-filters-endpoint.php 2 weeks ago fetch-records-count-endpoint.php 2 weeks ago fetch-records-fields-box-endpoint.php 2 weeks ago fetch-records-page-endpoint.php 2 weeks 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 weeks ago
mark-view-record-base-endpoint.php
97 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 JFB_Modules\Form_Record\Rest_Endpoints\Traits\Records_Access_Trait;
10 use Jet_Form_Builder\Db_Queries\Exceptions\Sql_Exception;
11 use Jet_Form_Builder\Db_Queries\Views\View_Base;
12 use Jet_Form_Builder\Exceptions\Query_Builder_Exception;
13 use Jet_Form_Builder\Rest_Api\Rest_Api_Endpoint_Base;
14 use Jet_Form_Builder\Rest_Api\Traits;
15 use Jet_Form_Builder\Admin\Tabs_Handlers\Tab_Handler_Manager;
16
17 // If this file is called directly, abort.
18 if ( ! defined( 'WPINC' ) ) {
19 die;
20 }
21
22 abstract class Mark_View_Record_Base_Endpoint extends Rest_Api_Endpoint_Base {
23
24 use Traits\Paginated_Args;
25 use Records_Access_Trait;
26
27 public static function get_methods() {
28 return \WP_REST_Server::CREATABLE;
29 }
30
31 abstract protected function is_viewed(): bool;
32
33 public function run_callback( \WP_REST_Request $request ) {
34 $body = $request->get_json_params();
35 $view = new Records_Table_View();
36
37 $args = View_Base::get_paginated_args( $this->get_paginate_args( $request ) );
38
39 $where = array(
40 array(
41 'type' => 'in',
42 'values' => array( 'id', $body['checked'] ?? array() ),
43 ),
44 );
45
46 try {
47 Record_View::update(
48 array( 'is_viewed' => (int) $this->is_viewed() ),
49 $where
50 );
51 } catch ( Sql_Exception $exception ) {
52 if ( ! $this->check_is_updated( $where ) ) {
53 return new \WP_REST_Response(
54 array(
55 'message' => $exception->getMessage(),
56 'data' => $exception->get_additional(),
57 ),
58 503
59 );
60 }
61 }
62 $list = $view->get_raw_list( $args );
63
64 return new \WP_REST_Response(
65 array(
66 'message' => __( 'Successfully updated!', 'jet-form-builder' ),
67 'list' => $view->get_prepared_list( $list ),
68 'total' => Record_View_Count::count( $args ),
69 )
70 );
71 }
72
73 /**
74 * Return true if rows was updated successfully
75 *
76 * @param $where
77 *
78 * @return bool
79 */
80 private function check_is_updated( $where ): bool {
81 $where = array_merge(
82 array(
83 'is_viewed' => (int) ( ! $this->is_viewed() ),
84 ),
85 $where
86 );
87
88 try {
89 Record_View::find( $where )->query()->query_all();
90 } catch ( Query_Builder_Exception $exception ) {
91 return true;
92 }
93
94 return false;
95 }
96 }
97