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, GroupPermissionsLookup $groupPermissionsLookup, ILoadBalancer $loadBalancer, PageLookup $pageLookup, TitleFormatter $titleFormatter)
 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...
 
 checkSession ()
 Check the session (and session provider) 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...
 
 getSession ()
 Get the Session. 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, Session $session)
 Initialise with dependencies from the Router. More...
 
 needsReadAccess ()
 Indicates whether this route requires read rights. More...
 
 requireSafeAgainstCsrf ()
 Indicates whether this route can be accessed only by session providers safe vs csrf. 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 (ExistingPageRecord $page, array $params, $relativeRevId, $ts, $tagIds)
 
 getPage ()
 
 processDbResults ( $res, $page, $params)
 

Private Attributes

NameTableStore $changeTagDefStore
 
GroupPermissionsLookup $groupPermissionsLookup
 
ILoadBalancer $loadBalancer
 
ExistingPageRecord false null $page = false
 
PageLookup $pageLookup
 
RevisionStore $revisionStore
 
TitleFormatter $titleFormatter
 
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 29 of file PageHistoryHandler.php.

Constructor & Destructor Documentation

◆ __construct()

MediaWiki\Rest\Handler\PageHistoryHandler::__construct ( RevisionStore  $revisionStore,
NameTableStoreFactory  $nameTableStoreFactory,
GroupPermissionsLookup  $groupPermissionsLookup,
ILoadBalancer  $loadBalancer,
PageLookup  $pageLookup,
TitleFormatter  $titleFormatter 
)

RevisionStore $revisionStore.

Parameters
RevisionStore$revisionStore
NameTableStoreFactory$nameTableStoreFactory
GroupPermissionsLookup$groupPermissionsLookup
ILoadBalancer$loadBalancer
PageLookup$pageLookup
TitleFormatter$titleFormatter

Definition at line 66 of file PageHistoryHandler.php.

References MediaWiki\Rest\Handler\PageHistoryHandler\$groupPermissionsLookup, MediaWiki\Rest\Handler\PageHistoryHandler\$loadBalancer, MediaWiki\Rest\Handler\PageHistoryHandler\$pageLookup, MediaWiki\Rest\Handler\PageHistoryHandler\$revisionStore, MediaWiki\Rest\Handler\PageHistoryHandler\$titleFormatter, 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 283 of file PageHistoryHandler.php.

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

◆ getDbResults()

MediaWiki\Rest\Handler\PageHistoryHandler::getDbResults ( ExistingPageRecord  $page,
array  $params,
  $relativeRevId,
  $ts,
  $tagIds 
)
private
Parameters
ExistingPageRecord$pageobject 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 186 of file PageHistoryHandler.php.

References $dbr, $res, $revQuery, DB_REPLICA, and Page\ProperPageIdentity\getId().

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

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

◆ getPage()

MediaWiki\Rest\Handler\PageHistoryHandler::getPage ( )
private
Returns
ExistingPageRecord|null

Definition at line 85 of file PageHistoryHandler.php.

References MediaWiki\Rest\Handler\getValidatedParams().

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

◆ hasRepresentation()

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

Reimplemented from MediaWiki\Rest\Handler.

Definition at line 490 of file PageHistoryHandler.php.

◆ 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 primary database access, since only read queries are needed and each primary DB is a single point of failure.

Stability: stable
to override
Returns
bool

Reimplemented from MediaWiki\Rest\Handler.

Definition at line 429 of file PageHistoryHandler.php.

◆ processDbResults()

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

Definition at line 300 of file PageHistoryHandler.php.

References $res, MediaWiki\Revision\RevisionRecord\FOR_THIS_USER, MediaWiki\Rest\Handler\getAuthority(), MediaWiki\Rest\Handler\getRouteUrl(), and wfTimestamp().

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

References $res, $title, MediaWiki\Rest\Handler\getAuthority(), MediaWiki\Rest\Handler\getResponseFactory(), MediaWiki\Rest\Handler\getValidatedParams(), and ChangeTags\REVERT_TAGS.

Member Data Documentation

◆ $changeTagDefStore

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

Definition at line 37 of file PageHistoryHandler.php.

◆ $groupPermissionsLookup

GroupPermissionsLookup MediaWiki\Rest\Handler\PageHistoryHandler::$groupPermissionsLookup
private

◆ $loadBalancer

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

◆ $page

ExistingPageRecord false null MediaWiki\Rest\Handler\PageHistoryHandler::$page = false
private

Definition at line 54 of file PageHistoryHandler.php.

◆ $pageLookup

PageLookup MediaWiki\Rest\Handler\PageHistoryHandler::$pageLookup
private

◆ $revisionStore

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

◆ $titleFormatter

TitleFormatter MediaWiki\Rest\Handler\PageHistoryHandler::$titleFormatter
private

◆ ALLOWED_FILTER_TYPES

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

Definition at line 31 of file PageHistoryHandler.php.

◆ REVISIONS_RETURN_LIMIT

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

Definition at line 30 of file PageHistoryHandler.php.


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