From: Petr Bena Date: Tue, 26 Aug 2014 13:06:12 +0000 (+0200) Subject: API: created a new api to flag messages as read X-Git-Tag: 1.31.0-rc.0~14116^2 X-Git-Url: https://git.cyclocoop.org//%22?a=commitdiff_plain;h=2077a43b5a9660080fc7916c3128e877a41c13c9;p=lhc%2Fweb%2Fwiklou.git API: created a new api to flag messages as read New api is called "ClearHasMsg" and does nothing but erase a new message flag from currently logged in user. This is useful for tools that can read the new messages using some api, or some other way (loading the text using different session, preload the text using a buffer where it's unrevealed later if user actually did read it, or closed the application before), so it can be useful in situations when you need to flag new messages as read in a different time than that when you actually read them. Bug: 64238 Change-Id: Ife575711c32bb8e3bcac789de4a6b37e1888d032 --- diff --git a/RELEASE-NOTES-1.24 b/RELEASE-NOTES-1.24 index 1205cebe15..1f97b8867b 100644 --- a/RELEASE-NOTES-1.24 +++ b/RELEASE-NOTES-1.24 @@ -246,6 +246,7 @@ production. of fetching tokens are deprecated. The value needed for meta=tokens's 'type' parameter for each module is documented in the action=help output and is returned from action=paraminfo. +* New action ClearHasMsg that can be used to clear HasMsg flag. === Action API internal changes in 1.24 === * Methods for handling continuation are added to ApiResult, so actions other diff --git a/includes/AutoLoader.php b/includes/AutoLoader.php index 04802f9e97..836440342d 100644 --- a/includes/AutoLoader.php +++ b/includes/AutoLoader.php @@ -214,6 +214,7 @@ $wgAutoloadLocalClasses = array( # includes/api 'ApiBase' => 'includes/api/ApiBase.php', 'ApiBlock' => 'includes/api/ApiBlock.php', + 'ApiClearHasMsg' => 'includes/api/ApiClearHasMsg.php', 'ApiComparePages' => 'includes/api/ApiComparePages.php', 'ApiCreateAccount' => 'includes/api/ApiCreateAccount.php', 'ApiDelete' => 'includes/api/ApiDelete.php', diff --git a/includes/api/ApiClearHasMsg.php b/includes/api/ApiClearHasMsg.php new file mode 100644 index 0000000000..32e20e80f3 --- /dev/null +++ b/includes/api/ApiClearHasMsg.php @@ -0,0 +1,58 @@ +getUser(); + $user->setNewtalk( false ); + $this->getResult()->addValue( null, $this->getModuleName(), 'success' ); + } + + public function isWriteMode() { + return true; + } + + public function mustBePosted() { + return false; + } + + public function getDescription() { + return array( 'Clears the hasmsg flag for current user.' ); + } + + public function getExamples() { + return array( + 'api.php?action=clearhasmsg' => 'Clears the hasmsg flag for current user', + ); + } + + public function getHelpUrls() { + return 'https://www.mediawiki.org/wiki/API:ClearHasMsg'; + } +} diff --git a/includes/api/ApiMain.php b/includes/api/ApiMain.php index 7f711b7cc6..3497c8e232 100644 --- a/includes/api/ApiMain.php +++ b/includes/api/ApiMain.php @@ -81,6 +81,7 @@ class ApiMain extends ApiBase { 'watch' => 'ApiWatch', 'patrol' => 'ApiPatrol', 'import' => 'ApiImport', + 'clearhasmsg' => 'ApiClearHasMsg', 'userrights' => 'ApiUserrights', 'options' => 'ApiOptions', 'imagerotate' => 'ApiImageRotate',