WMDE-leszek has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/403716 )

Change subject: Add revision ID to the response of edit form elements API
......................................................................

Add revision ID to the response of edit form elements API

Bug: T184409
Change-Id: I5421bd160125158251de4489acf1c06b84e889dd
---
M src/Api/EditFormElements.php
M tests/phpunit/mediawiki/Api/EditFormElementsTest.php
2 files changed, 39 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/WikibaseLexeme 
refs/changes/16/403716/1

diff --git a/src/Api/EditFormElements.php b/src/Api/EditFormElements.php
index 5eb2068..fb52f5e 100644
--- a/src/Api/EditFormElements.php
+++ b/src/Api/EditFormElements.php
@@ -117,7 +117,7 @@
                        $this->dieStatus( $status );
                }
 
-               $this->generateResponse( $form );
+               $this->generateResponse( $form, $status );
        }
 
        /**
@@ -157,15 +157,19 @@
        /**
         * @param Form $form
         */
-       private function generateResponse( Form $form ) {
+       private function generateResponse( Form $form, \Status $status ) {
                $apiResult = $this->getResult();
 
                $serializedForm = $this->formSerializer->serialize( $form );
                unset( $serializedForm['claims'] );
 
+               $statusValue = $status->getValue();
+               $revisionId = $statusValue['revision']->getRevisionId();
+
                // TODO: Do we really need `success` property in response?
                $apiResult->addValue( null, 'success', 1 );
                $apiResult->addValue( null, 'form', $serializedForm );
+               $apiResult->addValue( null, 'lastrevid', $revisionId );
        }
 
        /**
diff --git a/tests/phpunit/mediawiki/Api/EditFormElementsTest.php 
b/tests/phpunit/mediawiki/Api/EditFormElementsTest.php
index b6e3fb7..ea8a319 100644
--- a/tests/phpunit/mediawiki/Api/EditFormElementsTest.php
+++ b/tests/phpunit/mediawiki/Api/EditFormElementsTest.php
@@ -10,6 +10,7 @@
 use Wikibase\Lexeme\DataModel\LexemeId;
 use Wikibase\Lexeme\Tests\DataModel\NewForm;
 use Wikibase\Lexeme\Tests\DataModel\NewLexeme;
+use Wikibase\Lib\Store\EntityRevision;
 use Wikibase\Repo\Tests\Api\WikibaseApiTestCase;
 use Wikibase\Repo\WikibaseRepo;
 
@@ -354,7 +355,27 @@
                );
        }
 
-       // TODO: test API response contains the revision ID
+       public function testGivenFormEdited_responseContainsRevisionId() {
+               $form = NewForm::havingId( 'F1' )
+                       ->andGrammaticalFeature( 'Q123' )
+                       ->andRepresentation( 'en', 'goat' )
+                       ->build();
+               $lexeme = NewLexeme::havingId( 'L1' )->withForm( $form 
)->build();
+
+               $this->saveLexeme( $lexeme );
+
+               $params = [
+                       'action' => 'wblexemeeditformelements',
+                       'formId' => 'L1-F1',
+                       'data' => $this->getDataParam()
+               ];
+
+               list( $result, ) = $this->doApiRequestWithToken( $params );
+
+               $lexemeRevision = $this->getCurrentRevisionForForm( 'L1-F1' );
+
+               $this->assertEquals( $lexemeRevision->getRevisionId(), 
$result['lastrevid'] );
+       }
 
        private function saveLexeme( Lexeme $lexeme ) {
                $store = WikibaseRepo::getDefaultInstance()->getEntityStore();
@@ -372,4 +393,15 @@
                return $lookup->getEntity( new LexemeId( $id ) );
        }
 
+       /**
+        * @param string $id
+        *
+        * @return EntityRevision|null
+        */
+       private function getCurrentRevisionForForm( $id ) {
+               $lookup = 
WikibaseRepo::getDefaultInstance()->getEntityRevisionLookup();
+
+               return $lookup->getEntityRevision( new FormId( $id ) );
+       }
+
 }

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I5421bd160125158251de4489acf1c06b84e889dd
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/WikibaseLexeme
Gerrit-Branch: master
Gerrit-Owner: WMDE-leszek <leszek.mani...@wikimedia.de>

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

Reply via email to