summaryrefslogtreecommitdiff
blob: 256c92b419b19a466bfe878e2f75149fd91ba9d4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php

namespace Flow\Log;

use Flow\Formatter\AbstractQuery;
use Flow\Model\PostRevision;
use Flow\Model\UUID;

class LogQuery extends AbstractQuery {
	/**
	 * @param UUID[] $uuids
	 */
	public function loadMetadataBatch( $uuids ) {
		$posts = $this->loadPostsBatch( $uuids );
		parent::loadMetadataBatch( $posts );
	}

	/**
	 * @param UUID[] $uuids
	 * @return PostRevision[]
	 */
	protected function loadPostsBatch( array $uuids ) {
		$queries = array();
		foreach ( $uuids as $uuid ) {
			$queries[] = array( 'rev_type_id' => $uuid );
		}

		$found = $this->storage->findMulti(
			'PostRevision',
			$queries,
			array( 'sort' => 'rev_id', 'order' => 'DESC', 'limit' => 1 )
		);

		$revisions = array();
		foreach ( $found as $result ) {
			/** @var PostRevision $revision */
			$revision = reset( $result );
			$revisions[$revision->getPostId()->getAlphadecimal()] = $revision;
		}

		return $revisions;
	}
}