getMain()->getVal( '_' ); $user = $this->getUser(); if ( !$user->isRegistered() ) { $this->dieWithError( 'apierror-mustbeloggedin-generic', 'login-required' ); } $params = $this->extractRequestParams(); $timestamp = wfTimestamp( TS_MW ); $seenTime = EchoSeenTime::newFromUser( $user ); $seenTime->setTime( $timestamp, $params['type'] ); if ( $params['timestampFormat'] === 'ISO_8601' ) { $outputTimestamp = wfTimestamp( TS_ISO_8601, $timestamp ); } else { // MW $this->addDeprecation( 'apiwarn-echo-deprecation-timestampformat', 'action=echomarkseen×tampFormat=MW' ); $outputTimestamp = $timestamp; } $this->getResult()->addValue( 'query', $this->getModuleName(), [ 'result' => 'success', 'timestamp' => $outputTimestamp, ] ); } public function getAllowedParams() { return [ 'type' => [ ParamValidator::PARAM_REQUIRED => true, ParamValidator::PARAM_TYPE => [ 'alert', 'message', 'all' ], ], 'timestampFormat' => [ // Not using the TS constants, since clients can't. ParamValidator::PARAM_DEFAULT => 'MW', ParamValidator::PARAM_TYPE => [ 'ISO_8601', 'MW' ], ], ]; } /** * @see ApiBase::getExamplesMessages() * @return string[] */ protected function getExamplesMessages() { return [ 'action=echomarkseen&type=all' => 'apihelp-echomarkseen-example-1', ]; } public function getHelpUrls() { return 'https://www.mediawiki.org/wiki/Special:MyLanguage/Echo_(Notifications)/API'; } }