Test Failed
Push — issue/3627 ( 9db3c8...fa91e5 )
by Ravinder
1036:35 queued 1027:44
created

Give_DB_Comment_Meta   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 97
Duplicated Lines 100 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

Changes 0
Metric Value
dl 97
loc 97
rs 10
c 0
b 0
f 0
wmc 7
lcom 1
cbo 1

4 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 12 12 1
A get_columns() 8 8 1
A delete_row() 17 17 3
A is_valid_post_type() 3 3 2

How to fix   Duplicated Code   

Duplicated Code

Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.

Common duplication problems, and corresponding solutions are:

1
<?php
2
/**
3
 * Comments Meta DB class
4
 *
5
 * @package     Give
6
 * @subpackage  Classes/Give_DB_Comment_Meta
7
 * @copyright   Copyright (c) 2018, WordImpress
8
 * @license     https://opensource.org/licenses/gpl-license GNU Public License
9
 * @since       2.3.0
10
 */
11
12
// Exit if accessed directly.
13
if ( ! defined( 'ABSPATH' ) ) {
14
	exit;
15
}
16
17
/**
18
 * Class Give_DB_Comment_Meta
19
 *
20
 * This class is for interacting with the comment meta database table.
21
 *
22
 * @since 2.3.0
23
 */
24 View Code Duplication
class Give_DB_Comment_Meta extends Give_DB_Meta {
0 ignored issues
show
Duplication introduced by
This class seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
25
	/**
26
	 * Meta supports.
27
	 *
28
	 * @since  2.3.0
29
	 * @access protected
30
	 * @var array
31
	 */
32
	protected $supports = array();
33
34
	/**
35
	 * Meta type
36
	 *
37
	 * @since  2.3.0
38
	 * @access protected
39
	 * @var bool
40
	 */
41
	protected $meta_type = 'comment';
42
43
	/**
44
	 * Give_DB_Comment_Meta constructor.
45
	 *
46
	 * @access  public
47
	 * @since   2.3.0
48
	 */
49
	public function __construct() {
50
		/* @var WPDB $wpdb */
51
		global $wpdb;
52
53
		$wpdb->commentmeta     = $this->table_name = $wpdb->prefix . 'give_commentmeta';
54
		$this->primary_key = 'meta_id';
55
		$this->version     = '1.0';
56
57
		$this->register_table();
58
59
		parent::__construct();
60
	}
61
62
	/**
63
	 * Get table columns and data types.
64
	 *
65
	 * @access  public
66
	 * @since   2.3.0
67
	 *
68
	 * @return  array  Columns and formats.
69
	 */
70
	public function get_columns() {
71
		return array(
72
			'meta_id'    => '%d',
73
			'comment_id'     => '%d',
74
			'meta_key'   => '%s',
0 ignored issues
show
introduced by
Detected usage of meta_key, possible slow query.
Loading history...
75
			'meta_value' => '%s',
0 ignored issues
show
introduced by
Detected usage of meta_value, possible slow query.
Loading history...
76
		);
77
	}
78
79
	/**
80
	 * Delete all comment meta
81
	 *
82
	 * @since  2.3.0
83
	 * @access public
84
	 *
85
	 * @param int $comment_id
86
	 *
87
	 * @return bool
88
	 */
89
	public function delete_row( $comment_id = 0 ) {
90
		/* @var WPDB $wpdb */
91
		global $wpdb;
92
93
		// Row ID must be positive integer
94
		$comment_id = absint( $comment_id );
95
96
		if ( empty( $comment_id ) ) {
97
			return false;
98
		}
99
100
		if ( false === $wpdb->query( $wpdb->prepare( "DELETE FROM $this->table_name WHERE comment_id = %d", $comment_id ) ) ) {
0 ignored issues
show
introduced by
Usage of a direct database call is discouraged.
Loading history...
introduced by
Usage of a direct database call without caching is prohibited. Use wp_cache_get / wp_cache_set.
Loading history...
101
			return false;
102
		}
103
104
		return true;
105
	}
106
107
	/**
108
	 * Check if current id is valid
109
	 *
110
	 * @since  2.3.0
111
	 * @access protected
112
	 *
113
	 * @param $ID
114
	 *
115
	 * @return bool
116
	 */
117
	protected function is_valid_post_type( $ID ) {
118
		return $ID && true;
119
	}
120
}
121