MediaWiki  master
MediaWiki\Rest\Handler\PageHistoryHandler Class Reference

Handler class for Core REST API endpoints that perform operations on revisions. More...

Inheritance diagram for MediaWiki\Rest\Handler\PageHistoryHandler:
Collaboration diagram for MediaWiki\Rest\Handler\PageHistoryHandler:

Public Member Functions

 __construct (RevisionStore $revisionStore, NameTableStoreFactory $nameTableStoreFactory, PermissionManager $permissionManager, ILoadBalancer $loadBalancer)
 RevisionStore $revisionStore. More...
 
 getParamSettings ()
 Fetch ParamValidator settings for parameters. More...
 
 needsWriteAccess ()
 Indicates whether this route requires write access. More...
 
 run ( $title)
 At most one of older_than and newer_than may be specified. More...
 
- Public Member Functions inherited from MediaWiki\Rest\SimpleHandler
 execute ()
 Execute the handler. More...
 
- Public Member Functions inherited from MediaWiki\Rest\Handler
 applyConditionalResponseHeaders (ResponseInterface $response)
 Modify the response, adding Last-Modified and ETag headers as indicated the values previously returned by ETag and getLastModified(). More...
 
 checkPreconditions ()
 Check the conditional request headers and generate a response if appropriate. More...
 
 getBodyValidator ( $contentType)
 Fetch the BodyValidator. More...
 
 getConfig ()
 Get the configuration array for the current route. More...
 
 getRequest ()
 Get the current request. More...
 
 getResponseFactory ()
 Get the ResponseFactory which can be used to generate Response objects. More...
 
 getValidatedBody ()
 Fetch the validated body. More...
 
 getValidatedParams ()
 Fetch the validated parameters. More...
 
 init (Router $router, RequestInterface $request, array $config, ResponseFactory $responseFactory, HookContainer $hookContainer)
 Initialise with dependencies from the Router. More...
 
 needsReadAccess ()
 Indicates whether this route requires read rights. More...
 
 validate (Validator $restValidator)
 Validate the request parameters/attributes and body. More...
 

Protected Member Functions

 getETag ()
 Returns an ETag representing a page's latest revision. More...
 
 getLastModified ()
 Returns the time of the last change to the page. More...
 
 hasRepresentation ()
 
- Protected Member Functions inherited from MediaWiki\Rest\Handler
 getConditionalHeaderUtil ()
 Get a ConditionalHeaderUtil object. More...
 
 getHookContainer ()
 Get a HookContainer, for running extension hooks or for hook metadata. More...
 
 getHookRunner ()
 Get a HookRunner for running core hooks. More...
 
 getRouter ()
 Get the Router. More...
 
 getRouteUrl ( $pathParams=[], $queryParams=[])
 Get the URL of this handler's endpoint. More...
 
 postInitSetup ()
 The handler can override this to do any necessary setup after init() is called to inject the dependencies. More...
 
 urlEncodeTitle ( $title)
 URL-encode titles in a "pretty" way. More...
 

Private Member Functions

 getBitmask ()
 Helper function for rev_deleted/user rights query conditions. More...
 
 getDbResults (Title $titleObj, array $params, $relativeRevId, $ts, $tagIds)
 
 getTitle ()
 
 processDbResults ( $res, $titleObj, $params)
 

Private Attributes

NameTableStore $changeTagDefStore
 
ILoadBalancer $loadBalancer
 
PermissionManager $permissionManager
 
RevisionStore $revisionStore
 
Title bool null $title = null
 
User $user
 
const ALLOWED_FILTER_TYPES = [ 'anonymous', 'bot', 'reverted', 'minor' ]
 
const REVERTED_TAG_NAMES = [ 'mw-undo', 'mw-rollback', 'mw-manual-revert' ]
 
const REVISIONS_RETURN_LIMIT = 20
 

Additional Inherited Members

- Public Attributes inherited from MediaWiki\Rest\Handler
const PARAM_SOURCE = 'rest-param-source'
 (string) ParamValidator constant to specify the source of the parameter. More...
 

Detailed Description

Handler class for Core REST API endpoints that perform operations on revisions.

Definition at line 28 of file PageHistoryHandler.php.

Constructor & Destructor Documentation

◆ __construct()

MediaWiki\Rest\Handler\PageHistoryHandler::__construct ( RevisionStore  $revisionStore,
NameTableStoreFactory  $nameTableStoreFactory,
PermissionManager  $permissionManager,
ILoadBalancer  $loadBalancer 
)

RevisionStore $revisionStore.

Parameters
RevisionStore$revisionStore
NameTableStoreFactory$nameTableStoreFactory
PermissionManager$permissionManager
ILoadBalancer$loadBalancer

Definition at line 61 of file PageHistoryHandler.php.

References MediaWiki\Rest\Handler\PageHistoryHandler\$loadBalancer, MediaWiki\Rest\Handler\PageHistoryHandler\$permissionManager, MediaWiki\Rest\Handler\PageHistoryHandler\$revisionStore, MediaWiki\Storage\NameTableStoreFactory\getChangeTagDef(), and RequestContext\getMain().

Member Function Documentation

◆ getBitmask()

MediaWiki\Rest\Handler\PageHistoryHandler::getBitmask ( )
private

Helper function for rev_deleted/user rights query conditions.

Todo:
Factor out rev_deleted logic per T233222
Returns
int

Definition at line 272 of file PageHistoryHandler.php.

Referenced by MediaWiki\Rest\Handler\PageHistoryHandler\getDbResults().

◆ getDbResults()

MediaWiki\Rest\Handler\PageHistoryHandler::getDbResults ( Title  $titleObj,
array  $params,
  $relativeRevId,
  $ts,
  $tagIds 
)
private
Parameters
Title$titleObjtitle object identifying the page to load history for
array$paramsrequest parameters
int$relativeRevIdrelative revision id for paging, or zero if none
int$tstimestamp for paging, or zero if none
array$tagIdsvalidated tags ids, or empty array if not needed for this query
Returns
IResultWrapper|bool the results, or false if no query was executed

Definition at line 178 of file PageHistoryHandler.php.

References $dbr, $res, $revQuery, DB_REPLICA, Title\getArticleID(), and MediaWiki\Rest\Handler\PageHistoryHandler\getBitmask().

Referenced by MediaWiki\Rest\Handler\PageHistoryHandler\run().

◆ getETag()

MediaWiki\Rest\Handler\PageHistoryHandler::getETag ( )
protected

Returns an ETag representing a page's latest revision.

Returns
string|null

Reimplemented from MediaWiki\Rest\Handler.

Definition at line 446 of file PageHistoryHandler.php.

References MediaWiki\Rest\Handler\PageHistoryHandler\$title, Title\getArticleID(), Title\getLatestRevID(), and MediaWiki\Rest\Handler\PageHistoryHandler\getTitle().

◆ getLastModified()

MediaWiki\Rest\Handler\PageHistoryHandler::getLastModified ( )
protected

Returns the time of the last change to the page.

Returns
string|null

Reimplemented from MediaWiki\Rest\Handler.

Definition at line 460 of file PageHistoryHandler.php.

References MediaWiki\Rest\Handler\PageHistoryHandler\$title, Title\getArticleID(), and MediaWiki\Rest\Handler\PageHistoryHandler\getTitle().

◆ getParamSettings()

MediaWiki\Rest\Handler\PageHistoryHandler::getParamSettings ( )

Fetch ParamValidator settings for parameters.

Every setting must include self::PARAM_SOURCE to specify which part of the request is to contain the parameter.

Stable to override

Returns
array[] Associative array mapping parameter names to ParamValidator settings arrays

Reimplemented from MediaWiki\Rest\Handler.

Definition at line 416 of file PageHistoryHandler.php.

References MediaWiki\Rest\Handler\PageHistoryHandler\ALLOWED_FILTER_TYPES.

◆ getTitle()

◆ hasRepresentation()

MediaWiki\Rest\Handler\PageHistoryHandler::hasRepresentation ( )
protected

◆ needsWriteAccess()

MediaWiki\Rest\Handler\PageHistoryHandler::needsWriteAccess ( )

Indicates whether this route requires write access.

The handler should override this if the route does not need to write to the database.

This should return true for routes that may require synchronous database writes. Modules that do not need such writes should also not rely on master database access, since only read queries are needed and each master DB is a single point of failure.

Stable to override

Returns
bool

Reimplemented from MediaWiki\Rest\Handler.

Definition at line 412 of file PageHistoryHandler.php.

◆ processDbResults()

MediaWiki\Rest\Handler\PageHistoryHandler::processDbResults (   $res,
  $titleObj,
  $params 
)
private
Parameters
IResultWrapper | bool$resdatabase results, or false if no query was executed
Title$titleObjtitle object identifying the page to load history for
array$paramsrequest parameters
Returns
array response data

Definition at line 291 of file PageHistoryHandler.php.

References $res, MediaWiki\Rest\Handler\getRouteUrl(), and wfTimestamp().

Referenced by MediaWiki\Rest\Handler\PageHistoryHandler\run().

◆ run()

MediaWiki\Rest\Handler\PageHistoryHandler::run (   $title)

At most one of older_than and newer_than may be specified.

Keep in mind that revision ids are not monotonically increasing, so a revision may be older than another but have a higher revision id.

Parameters
string$title
Returns
Response
Exceptions
LocalizedHttpException

Definition at line 95 of file PageHistoryHandler.php.

References $res, MediaWiki\Rest\Handler\PageHistoryHandler\$title, MediaWiki\Rest\Handler\PageHistoryHandler\getDbResults(), MediaWiki\Rest\Handler\getResponseFactory(), MediaWiki\Rest\Handler\getValidatedParams(), Title\newFromText(), and MediaWiki\Rest\Handler\PageHistoryHandler\processDbResults().

Member Data Documentation

◆ $changeTagDefStore

NameTableStore MediaWiki\Rest\Handler\PageHistoryHandler::$changeTagDefStore
private

Definition at line 37 of file PageHistoryHandler.php.

◆ $loadBalancer

ILoadBalancer MediaWiki\Rest\Handler\PageHistoryHandler::$loadBalancer
private

◆ $permissionManager

PermissionManager MediaWiki\Rest\Handler\PageHistoryHandler::$permissionManager
private

◆ $revisionStore

RevisionStore MediaWiki\Rest\Handler\PageHistoryHandler::$revisionStore
private

◆ $title

◆ $user

User MediaWiki\Rest\Handler\PageHistoryHandler::$user
private

Definition at line 46 of file PageHistoryHandler.php.

◆ ALLOWED_FILTER_TYPES

const MediaWiki\Rest\Handler\PageHistoryHandler::ALLOWED_FILTER_TYPES = [ 'anonymous', 'bot', 'reverted', 'minor' ]
private

◆ REVERTED_TAG_NAMES

const MediaWiki\Rest\Handler\PageHistoryHandler::REVERTED_TAG_NAMES = [ 'mw-undo', 'mw-rollback', 'mw-manual-revert' ]
private

Definition at line 30 of file PageHistoryHandler.php.

◆ REVISIONS_RETURN_LIMIT

const MediaWiki\Rest\Handler\PageHistoryHandler::REVISIONS_RETURN_LIMIT = 20
private

Definition at line 29 of file PageHistoryHandler.php.


The documentation for this class was generated from the following file: