- public int handleCommand(final Namespace ns, final Signal signal) {
- if (!signal.isRegistered()) {
- System.err.println("User is not registered.");
- return 1;
+ public void handleCommand(final Namespace ns, final Signal signal) throws CommandException {
+ final var writer = new PlainTextWriterImpl(System.out);
+ byte[] groupId = null;
+ if (ns.getString("group") != null) {
+ try {
+ groupId = Util.decodeGroupId(ns.getString("group")).serialize();
+ } catch (GroupIdFormatException e) {
+ throw new UserErrorException("Invalid group id:" + e.getMessage());
+ }
+ }
+ if (groupId == null) {
+ groupId = new byte[0];
+ }
+
+ var groupName = ns.getString("name");
+ if (groupName == null) {
+ groupName = "";
+ }
+
+ List<String> groupMembers = ns.getList("member");
+ if (groupMembers == null) {
+ groupMembers = new ArrayList<>();
+ }
+
+ var groupAvatar = ns.getString("avatar");
+ if (groupAvatar == null) {
+ groupAvatar = "";