use of com.github.jamesnetherton.zulip.client.api.server.ProfileField in project zulip-java-client by jamesnetherton.
the class ZulipIntegrationTestBase method afterEach.
@AfterEach
public void afterEach() throws Exception {
if (zulip != null) {
// Clean up messages
List<Message> messages = zulip.messages().getMessages(100, 0, Anchor.NEWEST).execute();
if (messages != null) {
for (Message message : messages) {
try {
zulip.messages().deleteMessage(message.getId()).execute();
} catch (ZulipClientException e) {
// Ignore
}
}
}
List<Message> privateMessages = zulip.messages().getMessages(100, 0, Anchor.NEWEST).withNarrows(Narrow.of("is", "private")).execute();
if (privateMessages != null) {
for (Message message : privateMessages) {
try {
zulip.messages().deleteMessage(message.getId()).execute();
} catch (ZulipClientException e) {
// Ignore
}
}
}
// Clean up streams
List<Stream> streams = zulip.streams().getAll().withIncludeDefault(false).execute();
if (streams != null) {
for (Stream stream : streams) {
try {
zulip.streams().delete(stream.getStreamId()).execute();
} catch (ZulipClientException e) {
// Ignore
}
}
}
// Clean up user groups
List<UserGroup> groups = zulip.users().getUserGroups().execute();
if (groups != null) {
for (UserGroup group : groups) {
try {
zulip.users().deleteUserGroup(group.getId()).execute();
} catch (ZulipClientException e) {
// Ignore
}
}
}
// Clean up profile fields
List<ProfileField> fields = zulip.server().getCustomProfileFields().execute();
if (fields != null) {
for (ProfileField field : fields) {
try {
zulip.server().deleteCustomProfileField(field.getId()).execute();
} catch (ZulipClientException e) {
// Ignore
}
}
}
}
// Clean up drafts
List<Draft> drafts = zulip.drafts().getDrafts().execute();
if (drafts != null) {
for (Draft draft : drafts) {
try {
zulip.drafts().deleteDraft(draft.getId()).execute();
} catch (ZulipClientException e) {
// Ignore
}
}
}
}
use of com.github.jamesnetherton.zulip.client.api.server.ProfileField in project zulip-java-client by jamesnetherton.
the class ZulipServerIT method customProfileFieldsCrud.
@SuppressWarnings("unchecked")
@Test
public void customProfileFieldsCrud() throws ZulipClientException {
long simpleId = zulip.server().createCustomProfileField().withSimpleFieldType(ProfileFieldType.LONG_TEXT, "Test Long Name", "Test Long Hint").execute();
assertTrue(simpleId > 0);
Map<String, Map<String, String>> listData = new LinkedHashMap<>();
Map<String, String> child = new LinkedHashMap<>();
child.put("text", "Vim");
child.put("order", "1");
listData.put("vim", child);
long listId = zulip.server().createCustomProfileField().withListOfOptionsFieldType("Test List Name", "Test List Hint", listData).execute();
assertTrue(listId > 0);
Map<String, String> externalData = new LinkedHashMap<>();
externalData.put("subtype", "github");
long externalId = zulip.server().createCustomProfileField().withExternalAccountFieldType(externalData).execute();
assertTrue(externalId > 0);
List<ProfileField> profileFields = zulip.server().getCustomProfileFields().execute();
assertEquals(3, profileFields.size());
List<Integer> order = new ArrayList<>();
for (ProfileField field : profileFields) {
if (field.getId() == simpleId) {
assertEquals("Test Long Hint", field.getHint());
assertEquals("Test Long Name", field.getName());
assertTrue(field.getOrder() > 0);
assertEquals(ProfileFieldType.LONG_TEXT, field.getType());
assertEquals("", field.getFieldData());
order.add(field.getOrder());
} else if (field.getId() == listId) {
assertEquals("Test List Hint", field.getHint());
assertEquals("Test List Name", field.getName());
assertTrue(field.getOrder() > 0);
assertEquals(ProfileFieldType.LIST_OF_OPTIONS, field.getType());
Map<String, Map<String, String>> data = (Map<String, Map<String, String>>) field.getFieldData();
assertEquals(1, data.size());
Map<String, String> vim = data.get("vim");
assertNotNull(vim);
assertEquals(2, vim.size());
assertEquals("Vim", vim.get("text"));
assertEquals("1", vim.get("order"));
order.add(field.getOrder());
} else if (field.getId() == externalId) {
assertEquals("Enter your GitHub username", field.getHint());
assertEquals("GitHub", field.getName());
assertTrue(field.getOrder() > 0);
assertEquals(ProfileFieldType.EXTERNAL_ACCOUNT, field.getType());
Map<String, String> data = (Map<String, String>) field.getFieldData();
assertEquals(1, data.size());
assertEquals("github", data.get("subtype"));
order.add(field.getOrder());
} else {
fail("Unexpected profile entry found");
}
}
Collections.reverse(order);
zulip.server().reorderCustomProfileFields(order.get(0), order.get(1), order.get(2)).execute();
zulip.server().deleteCustomProfileField(simpleId).execute();
zulip.server().deleteCustomProfileField(listId).execute();
zulip.server().deleteCustomProfileField(externalId).execute();
}
Aggregations