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...
 
 getAuthority ()
 Get the current acting authority. 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, Authority $authority, 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...
 
 postValidationSetup ()
 The handler can override this to do any necessary setup after validate() has been called. 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
 
const ALLOWED_FILTER_TYPES = [ 'anonymous', 'bot', 'reverted', 'minor' ]
 
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 27 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 56 of file PageHistoryHandler.php.

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

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 264 of file PageHistoryHandler.php.

References Revision\RevisionRecord\DELETED_RESTRICTED, Revision\RevisionRecord\DELETED_USER, and MediaWiki\Rest\Handler\getAuthority().

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 170 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 436 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 450 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.

Can be used for validating parameters inside an application/x-www-form-urlencoded or multipart/form-data POST body (i.e. parameters which would be present in PHP's $_POST array). For validating other kinds of request bodies, override getBodyValidator().

Stability: stable
to override
Returns
array[] Associative array mapping parameter names to ParamValidator settings arrays

Reimplemented from MediaWiki\Rest\Handler.

Definition at line 406 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.

Stability: stable
to override
Returns
bool

Reimplemented from MediaWiki\Rest\Handler.

Definition at line 402 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 281 of file PageHistoryHandler.php.

References $res, Revision\RevisionRecord\FOR_THIS_USER, MediaWiki\Rest\Handler\getAuthority(), 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 87 of file PageHistoryHandler.php.

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

Member Data Documentation

◆ $changeTagDefStore

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

Definition at line 35 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

◆ ALLOWED_FILTER_TYPES

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

◆ REVISIONS_RETURN_LIMIT

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

Definition at line 28 of file PageHistoryHandler.php.


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