API: Add more parameter types and improve info
[lhc/web/wiklou.git] / includes / api / ApiQueryUsers.php
index 52636cc..8b1a075 100644 (file)
@@ -110,7 +110,7 @@ class ApiQueryUsers extends ApiQueryBase {
                foreach ( $users as $u ) {
                        $n = User::getCanonicalName( $u );
                        if ( $n === false || $n === '' ) {
-                               $vals = array( 'name' => $u, 'invalid' => '' );
+                               $vals = array( 'name' => $u, 'invalid' => true );
                                $fit = $result->addValue( array( 'query', $this->getModuleName() ),
                                        null, $vals );
                                if ( !$fit ) {
@@ -190,19 +190,19 @@ class ApiQueryUsers extends ApiQueryBase {
                                        $data[$name]['rights'] = $user->getRights();
                                }
                                if ( $row->ipb_deleted ) {
-                                       $data[$name]['hidden'] = '';
+                                       $data[$name]['hidden'] = true;
                                }
                                if ( isset( $this->prop['blockinfo'] ) && !is_null( $row->ipb_by_text ) ) {
-                                       $data[$name]['blockid'] = $row->ipb_id;
+                                       $data[$name]['blockid'] = (int)$row->ipb_id;
                                        $data[$name]['blockedby'] = $row->ipb_by_text;
-                                       $data[$name]['blockedbyid'] = $row->ipb_by;
+                                       $data[$name]['blockedbyid'] = (int)$row->ipb_by;
                                        $data[$name]['blockedtimestamp'] = wfTimestamp( TS_ISO_8601, $row->ipb_timestamp );
                                        $data[$name]['blockreason'] = $row->ipb_reason;
                                        $data[$name]['blockexpiry'] = $row->ipb_expiry;
                                }
 
-                               if ( isset( $this->prop['emailable'] ) && $user->canReceiveEmail() ) {
-                                       $data[$name]['emailable'] = '';
+                               if ( isset( $this->prop['emailable'] ) ) {
+                                       $data[$name]['emailable'] = $user->canReceiveEmail();
                                }
 
                                if ( isset( $this->prop['gender'] ) ) {
@@ -237,7 +237,7 @@ class ApiQueryUsers extends ApiQueryBase {
                                $iwUser = $urPage->fetchUser( $u );
 
                                if ( $iwUser instanceof UserRightsProxy ) {
-                                       $data[$u]['interwiki'] = '';
+                                       $data[$u]['interwiki'] = true;
 
                                        if ( !is_null( $params['token'] ) ) {
                                                $tokenFunctions = $this->getTokenFunctions();
@@ -252,17 +252,20 @@ class ApiQueryUsers extends ApiQueryBase {
                                                }
                                        }
                                } else {
-                                       $data[$u]['missing'] = '';
+                                       $data[$u]['missing'] = true;
                                }
                        } else {
                                if ( isset( $this->prop['groups'] ) && isset( $data[$u]['groups'] ) ) {
-                                       $result->setIndexedTagName( $data[$u]['groups'], 'g' );
+                                       ApiResult::setArrayType( $data[$u]['groups'], 'array' );
+                                       ApiResult::setIndexedTagName( $data[$u]['groups'], 'g' );
                                }
                                if ( isset( $this->prop['implicitgroups'] ) && isset( $data[$u]['implicitgroups'] ) ) {
-                                       $result->setIndexedTagName( $data[$u]['implicitgroups'], 'g' );
+                                       ApiResult::setArrayType( $data[$u]['implicitgroups'], 'array' );
+                                       ApiResult::setIndexedTagName( $data[$u]['implicitgroups'], 'g' );
                                }
                                if ( isset( $this->prop['rights'] ) && isset( $data[$u]['rights'] ) ) {
-                                       $result->setIndexedTagName( $data[$u]['rights'], 'r' );
+                                       ApiResult::setArrayType( $data[$u]['rights'], 'array' );
+                                       ApiResult::setIndexedTagName( $data[$u]['rights'], 'r' );
                                }
                        }
 
@@ -275,7 +278,7 @@ class ApiQueryUsers extends ApiQueryBase {
                        }
                        $done[] = $u;
                }
-               $result->setIndexedTagName_internal( array( 'query', $this->getModuleName() ), 'user' );
+               $result->addIndexedTagName( array( 'query', $this->getModuleName() ), 'user' );
        }
 
        public function getCacheMode( $params ) {