Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 16
0.00% covered (danger)
0.00%
0 / 2
CRAP
0.00% covered (danger)
0.00%
0 / 1
TopicListStorage
0.00% covered (danger)
0.00%
0 / 16
0.00% covered (danger)
0.00%
0 / 2
20
0.00% covered (danger)
0.00%
0 / 1
 doFindQuery
0.00% covered (danger)
0.00%
0 / 8
0.00% covered (danger)
0.00%
0 / 1
2
 insert
0.00% covered (danger)
0.00%
0 / 8
0.00% covered (danger)
0.00%
0 / 1
12
1<?php
2
3namespace Flow\Data\Storage;
4
5/**
6 * Storage class for topic list ordered by last updated
7 */
8class TopicListStorage extends BasicDbStorage {
9
10    protected function doFindQuery( array $preprocessedAttributes, array $options = [] ) {
11        return $this->dbFactory->getDB( DB_REPLICA )->select(
12            [ $this->table, 'flow_workflow' ],
13            [ 'topic_list_id', 'topic_id', 'workflow_last_update_timestamp' ],
14            $preprocessedAttributes,
15            __METHOD__ . " ({$this->table})",
16            $options,
17            [ 'flow_workflow' => [ 'INNER JOIN', 'workflow_id = topic_id' ] ]
18        );
19    }
20
21    /**
22     * We need workflow_last_update_timestamp for updating
23     * the ordering in cache
24     * @param array $rows
25     * @return array|false
26     */
27    public function insert( array $rows ) {
28        $updateRows = [];
29        foreach ( $rows as $i => $row ) {
30            // Note, entries added directly to the index (rather than from DB
31            // fill) do have this key, but obviously it can't be used.
32            unset( $row['workflow_last_update_timestamp'] );
33            $updateRows[$i] = $row;
34        }
35        $res = parent::insert( $updateRows );
36        if ( $res ) {
37            return $rows;
38        } else {
39            return false;
40        }
41    }
42
43}