MCPcopy Create free account
hub / github.com/EqualifyEverything/equalify / get_joined_db

Method get_joined_db

models/db.php:286–333  ·  view source on GitHub ↗

* Get Joined DB * @param string requesting * @param array site_ids */

(
        $requesting, $sites = [])

Source from the content-addressed store, hash-verified

284 * @param array site_ids
285 */
286 public static function get_joined_db(
287 $requesting, $sites = []){
288
289 // TODO: Add "WHERE" with site id, so that we only equalify active site alerts.
290
291 // Set conditions based on type.
292 if($requesting == 'equalified_alerts'){
293 $table1 = 'alerts';
294 $table2 = 'queued_alerts';
295 $selected_columns = "DISTINCT $table1.id";
296 }elseif($requesting == 'new_alerts'){
297 $table1 = 'queued_alerts';
298 $table2 = 'alerts';
299 $selected_columns = "DISTINCT $table1.id, ";
300 $selected_columns.= "$table1.url, $table1.message, ";
301 $selected_columns.= "$table1.status, $table1.site_id, ";
302 $selected_columns.= "$table1.source, $table1.tags, ";
303 $selected_columns.= "$table1.more_info, $table1.more_info";
304 }
305
306 // SQL.
307 $sql = "SELECT $selected_columns FROM $table1 ";
308 $sql.= "LEFT JOIN $table2 ";
309 $sql.= "ON $table1.url=$table2.url ";
310 $sql.= "AND $table1.message=$table2.message ";
311 $sql.= "AND $table1.site_id=$table2.site_id ";
312 $sql.= "AND $table1.source=$table2.source ";
313 $sql.= "WHERE $table2.id IS NULL AND $table1.archived = 0 ";
314 if(!empty($sites)){
315 foreach($sites as $site){
316 $sql.= "AND $table1.site_id = $site->id ";
317 }
318 }
319 $params = array();
320
321 // Query
322 $result = self::query($sql, $params, true);
323
324 // Result
325 $content = [];
326 if($result->num_rows > 0){
327 while($row = $result->fetch_object()){
328 $content[] = $row;
329 }
330 }
331 return $content;
332
333 }
334
335 /**
336 * Add DB Column

Callers 1

process_alertsFunction · 0.80

Calls 1

queryMethod · 0.95

Tested by

no test coverage detected