jenkins-bot has submitted this change and it was merged.

Change subject: API: created a new api to flag messages as read
......................................................................


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
---
M RELEASE-NOTES-1.24
M includes/AutoLoader.php
A includes/api/ApiClearHasMsg.php
M includes/api/ApiMain.php
4 files changed, 61 insertions(+), 0 deletions(-)

Approvals:
  Anomie: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/RELEASE-NOTES-1.24 b/RELEASE-NOTES-1.24
index 1205cebe..1f97b88 100644
--- a/RELEASE-NOTES-1.24
+++ b/RELEASE-NOTES-1.24
@@ -246,6 +246,7 @@
   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 04802f9..8364403 100644
--- a/includes/AutoLoader.php
+++ b/includes/AutoLoader.php
@@ -214,6 +214,7 @@
        # 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 0000000..32e20e8
--- /dev/null
+++ b/includes/api/ApiClearHasMsg.php
@@ -0,0 +1,58 @@
+<?php
+
+/**
+ * Created on August 26, 2014
+ *
+ * Copyright © 2014 Petr Bena (benap...@gmail.com)
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
+/**
+ * API module that clears the hasmsg flag for current user
+ * @ingroup API
+ */
+class ApiClearHasMsg extends ApiBase {
+       public function execute() {
+               $user = $this->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 7f711b7..3497c8e 100644
--- a/includes/api/ApiMain.php
+++ b/includes/api/ApiMain.php
@@ -81,6 +81,7 @@
                'watch' => 'ApiWatch',
                'patrol' => 'ApiPatrol',
                'import' => 'ApiImport',
+               'clearhasmsg' => 'ApiClearHasMsg',
                'userrights' => 'ApiUserrights',
                'options' => 'ApiOptions',
                'imagerotate' => 'ApiImageRotate',

-- 
To view, visit https://gerrit.wikimedia.org/r/156274
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ife575711c32bb8e3bcac789de4a6b37e1888d032
Gerrit-PatchSet: 19
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Petrb <benap...@gmail.com>
Gerrit-Reviewer: Anomie <bjor...@wikimedia.org>
Gerrit-Reviewer: Bartosz Dziewoński <matma....@gmail.com>
Gerrit-Reviewer: Krinkle <krinklem...@gmail.com>
Gerrit-Reviewer: Legoktm <legoktm.wikipe...@gmail.com>
Gerrit-Reviewer: Petrb <benap...@gmail.com>
Gerrit-Reviewer: Reedy <re...@wikimedia.org>
Gerrit-Reviewer: Umherirrender <umherirrender_de...@web.de>
Gerrit-Reviewer: Yurik <yu...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to