- public int handleCommand(final Namespace ns, final Manager m) {
- if (!m.isRegistered()) {
- System.err.println("User is not registered.");
- return 1;
- }
-
- String name = ns.getString("name");
-
- if (name != null) {
- try {
- m.setProfileName(name);
- } catch (IOException e) {
- System.err.println("UpdateAccount error: " + e.getMessage());
- return 3;
- }
- }
-
- String avatarPath = ns.getString("avatar");
-
- if (avatarPath != null) {
- File avatarFile = new File(avatarPath);
-
- try {
- m.setProfileAvatar(avatarFile);
- } catch (IOException e) {
- System.err.println("UpdateAccount error: " + e.getMessage());
- return 3;
- }
+ public void handleCommand(final Namespace ns, final Manager m) throws CommandException {
+ var givenName = ns.getString("given-name");
+ var familyName = ns.getString("family-name");
+ var about = ns.getString("about");
+ var aboutEmoji = ns.getString("about-emoji");
+ var avatarPath = ns.getString("avatar");
+ boolean removeAvatar = ns.getBoolean("remove-avatar");
+
+ Optional<File> avatarFile = removeAvatar
+ ? Optional.absent()
+ : avatarPath == null ? null : Optional.of(new File(avatarPath));
+
+ try {
+ m.setProfile(givenName, familyName, about, aboutEmoji, avatarFile);
+ } catch (IOException e) {
+ throw new IOErrorException("Update profile error: " + e.getMessage());