AccountApi: Add methods to get and set EditPreferencesInfo

Change-Id: Ib54a4cced7b97d1df7a68cc7d0ae17768c445548
This commit is contained in:
David Ostrovsky
2016-03-20 09:00:22 +01:00
parent fc833989b6
commit d0cbb00e73
3 changed files with 57 additions and 18 deletions

View File

@@ -12,25 +12,25 @@
// See the License for the specific language governing permissions and // See the License for the specific language governing permissions and
// limitations under the License. // limitations under the License.
package com.google.gerrit.acceptance.rest.account; package com.google.gerrit.acceptance.api.accounts;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import com.google.gerrit.acceptance.AbstractDaemonTest; import com.google.gerrit.acceptance.AbstractDaemonTest;
import com.google.gerrit.acceptance.RestResponse; import com.google.gerrit.acceptance.NoHttpd;
import com.google.gerrit.extensions.client.EditPreferencesInfo; import com.google.gerrit.extensions.client.EditPreferencesInfo;
import com.google.gerrit.extensions.client.KeyMapType; import com.google.gerrit.extensions.client.KeyMapType;
import com.google.gerrit.extensions.client.Theme; import com.google.gerrit.extensions.client.Theme;
import org.junit.Test; import org.junit.Test;
@NoHttpd
public class EditPreferencesIT extends AbstractDaemonTest { public class EditPreferencesIT extends AbstractDaemonTest {
@Test @Test
public void getSetEditPreferences() throws Exception { public void getSetEditPreferences() throws Exception {
String endPoint = "/accounts/" + admin.email + "/preferences.edit"; EditPreferencesInfo out = gApi.accounts()
RestResponse r = adminSession.get(endPoint); .id(admin.getId().toString())
r.assertOK(); .getEditPreferences();
EditPreferencesInfo out = getEditPrefInfo(r);
assertThat(out.lineLength).isEqualTo(100); assertThat(out.lineLength).isEqualTo(100);
assertThat(out.tabSize).isEqualTo(8); assertThat(out.tabSize).isEqualTo(8);
@@ -59,29 +59,24 @@ public class EditPreferencesIT extends AbstractDaemonTest {
out.theme = Theme.TWILIGHT; out.theme = Theme.TWILIGHT;
out.keyMapType = KeyMapType.EMACS; out.keyMapType = KeyMapType.EMACS;
r = adminSession.put(endPoint, out); EditPreferencesInfo info = gApi.accounts()
r.assertOK(); .id(admin.getId().toString())
.setEditPreferences(out);
EditPreferencesInfo info = getEditPrefInfo(r);
assertEditPreferences(info, out); assertEditPreferences(info, out);
// Partially filled input record // Partially filled input record
EditPreferencesInfo in = new EditPreferencesInfo(); EditPreferencesInfo in = new EditPreferencesInfo();
in.tabSize = 42; in.tabSize = 42;
r = adminSession.put(endPoint, in);
r.assertOK();
info = getEditPrefInfo(r); info = gApi.accounts()
.id(admin.getId().toString())
.setEditPreferences(in);
out.tabSize = in.tabSize; out.tabSize = in.tabSize;
assertEditPreferences(info, out); assertEditPreferences(info, out);
} }
private EditPreferencesInfo getEditPrefInfo(RestResponse r)
throws Exception {
return newGson().fromJson(r.getReader(),
EditPreferencesInfo.class);
}
private void assertEditPreferences(EditPreferencesInfo out, private void assertEditPreferences(EditPreferencesInfo out,
EditPreferencesInfo in) throws Exception { EditPreferencesInfo in) throws Exception {
assertThat(out.lineLength).isEqualTo(in.lineLength); assertThat(out.lineLength).isEqualTo(in.lineLength);

View File

@@ -14,6 +14,7 @@
package com.google.gerrit.extensions.api.accounts; package com.google.gerrit.extensions.api.accounts;
import com.google.gerrit.extensions.client.EditPreferencesInfo;
import com.google.gerrit.extensions.client.GeneralPreferencesInfo; import com.google.gerrit.extensions.client.GeneralPreferencesInfo;
import com.google.gerrit.extensions.common.AccountInfo; import com.google.gerrit.extensions.common.AccountInfo;
import com.google.gerrit.extensions.common.GpgKeyInfo; import com.google.gerrit.extensions.common.GpgKeyInfo;
@@ -32,6 +33,10 @@ public interface AccountApi {
GeneralPreferencesInfo setPreferences(GeneralPreferencesInfo in) GeneralPreferencesInfo setPreferences(GeneralPreferencesInfo in)
throws RestApiException; throws RestApiException;
EditPreferencesInfo getEditPreferences() throws RestApiException;
EditPreferencesInfo setEditPreferences(EditPreferencesInfo in)
throws RestApiException;
void starChange(String id) throws RestApiException; void starChange(String id) throws RestApiException;
void unstarChange(String id) throws RestApiException; void unstarChange(String id) throws RestApiException;
void addEmail(EmailInput input) throws RestApiException; void addEmail(EmailInput input) throws RestApiException;
@@ -67,6 +72,17 @@ public interface AccountApi {
throw new NotImplementedException(); throw new NotImplementedException();
} }
@Override
public EditPreferencesInfo getEditPreferences() throws RestApiException {
throw new NotImplementedException();
}
@Override
public EditPreferencesInfo setEditPreferences(EditPreferencesInfo in)
throws RestApiException {
throw new NotImplementedException();
}
@Override @Override
public void starChange(String id) throws RestApiException { public void starChange(String id) throws RestApiException {
throw new NotImplementedException(); throw new NotImplementedException();

View File

@@ -18,6 +18,7 @@ import com.google.gerrit.common.errors.EmailException;
import com.google.gerrit.extensions.api.accounts.AccountApi; import com.google.gerrit.extensions.api.accounts.AccountApi;
import com.google.gerrit.extensions.api.accounts.EmailInput; import com.google.gerrit.extensions.api.accounts.EmailInput;
import com.google.gerrit.extensions.api.accounts.GpgKeyApi; import com.google.gerrit.extensions.api.accounts.GpgKeyApi;
import com.google.gerrit.extensions.client.EditPreferencesInfo;
import com.google.gerrit.extensions.client.GeneralPreferencesInfo; import com.google.gerrit.extensions.client.GeneralPreferencesInfo;
import com.google.gerrit.extensions.common.AccountInfo; import com.google.gerrit.extensions.common.AccountInfo;
import com.google.gerrit.extensions.common.GpgKeyInfo; import com.google.gerrit.extensions.common.GpgKeyInfo;
@@ -29,7 +30,9 @@ import com.google.gerrit.server.account.AccountLoader;
import com.google.gerrit.server.account.AccountResource; import com.google.gerrit.server.account.AccountResource;
import com.google.gerrit.server.account.CreateEmail; import com.google.gerrit.server.account.CreateEmail;
import com.google.gerrit.server.account.GetAvatar; import com.google.gerrit.server.account.GetAvatar;
import com.google.gerrit.server.account.GetEditPreferences;
import com.google.gerrit.server.account.GetPreferences; import com.google.gerrit.server.account.GetPreferences;
import com.google.gerrit.server.account.SetEditPreferences;
import com.google.gerrit.server.account.SetPreferences; import com.google.gerrit.server.account.SetPreferences;
import com.google.gerrit.server.account.StarredChanges; import com.google.gerrit.server.account.StarredChanges;
import com.google.gerrit.server.change.ChangeResource; import com.google.gerrit.server.change.ChangeResource;
@@ -56,6 +59,8 @@ public class AccountApiImpl implements AccountApi {
private final Provider<GetAvatar> getAvatar; private final Provider<GetAvatar> getAvatar;
private final GetPreferences getPreferences; private final GetPreferences getPreferences;
private final SetPreferences setPreferences; private final SetPreferences setPreferences;
private final GetEditPreferences getEditPreferences;
private final SetEditPreferences setEditPreferences;
private final StarredChanges.Create starredChangesCreate; private final StarredChanges.Create starredChangesCreate;
private final StarredChanges.Delete starredChangesDelete; private final StarredChanges.Delete starredChangesDelete;
private final CreateEmail.Factory createEmailFactory; private final CreateEmail.Factory createEmailFactory;
@@ -67,6 +72,8 @@ public class AccountApiImpl implements AccountApi {
Provider<GetAvatar> getAvatar, Provider<GetAvatar> getAvatar,
GetPreferences getPreferences, GetPreferences getPreferences,
SetPreferences setPreferences, SetPreferences setPreferences,
GetEditPreferences getEditPreferences,
SetEditPreferences setEditPreferences,
StarredChanges.Create starredChangesCreate, StarredChanges.Create starredChangesCreate,
StarredChanges.Delete starredChangesDelete, StarredChanges.Delete starredChangesDelete,
CreateEmail.Factory createEmailFactory, CreateEmail.Factory createEmailFactory,
@@ -78,6 +85,8 @@ public class AccountApiImpl implements AccountApi {
this.getAvatar = getAvatar; this.getAvatar = getAvatar;
this.getPreferences = getPreferences; this.getPreferences = getPreferences;
this.setPreferences = setPreferences; this.setPreferences = setPreferences;
this.getEditPreferences = getEditPreferences;
this.setEditPreferences = setEditPreferences;
this.starredChangesCreate = starredChangesCreate; this.starredChangesCreate = starredChangesCreate;
this.starredChangesDelete = starredChangesDelete; this.starredChangesDelete = starredChangesDelete;
this.createEmailFactory = createEmailFactory; this.createEmailFactory = createEmailFactory;
@@ -119,6 +128,25 @@ public class AccountApiImpl implements AccountApi {
} }
} }
@Override
public EditPreferencesInfo getEditPreferences() throws RestApiException {
try {
return getEditPreferences.apply(account);
} catch (IOException | ConfigInvalidException e) {
throw new RestApiException("Cannot query edit preferences", e);
}
}
@Override
public EditPreferencesInfo setEditPreferences(EditPreferencesInfo in)
throws RestApiException {
try {
return setEditPreferences.apply(account, in);
} catch (IOException | ConfigInvalidException e) {
throw new RestApiException("Cannot set edit preferences", e);
}
}
@Override @Override
public void starChange(String id) throws RestApiException { public void starChange(String id) throws RestApiException {
try { try {