1 package org
.asamk
.signal
.commands
;
3 import net
.sourceforge
.argparse4j
.inf
.Namespace
;
4 import net
.sourceforge
.argparse4j
.inf
.Subparser
;
5 import org
.asamk
.signal
.GroupIdFormatException
;
6 import org
.asamk
.signal
.GroupNotFoundException
;
7 import org
.asamk
.signal
.NotAGroupMemberException
;
8 import org
.asamk
.signal
.manager
.Manager
;
9 import org
.asamk
.signal
.util
.Util
;
10 import org
.whispersystems
.signalservice
.api
.push
.exceptions
.EncapsulatedExceptions
;
12 import java
.io
.IOException
;
14 import static org
.asamk
.signal
.util
.ErrorUtils
.*;
16 public class QuitGroupCommand
implements LocalCommand
{
19 public void attachToSubparser(final Subparser subparser
) {
20 subparser
.addArgument("-g", "--group")
22 .help("Specify the recipient group ID.");
26 public int handleCommand(final Namespace ns
, final Manager m
) {
27 if (!m
.isRegistered()) {
28 System
.err
.println("User is not registered.");
33 m
.sendQuitGroupMessage(Util
.decodeGroupId(ns
.getString("group")));
35 } catch (IOException e
) {
38 } catch (EncapsulatedExceptions e
) {
39 handleEncapsulatedExceptions(e
);
41 } catch (AssertionError e
) {
42 handleAssertionError(e
);
44 } catch (GroupNotFoundException e
) {
45 handleGroupNotFoundException(e
);
47 } catch (NotAGroupMemberException e
) {
48 handleNotAGroupMemberException(e
);
50 } catch (GroupIdFormatException e
) {
51 handleGroupIdFormatException(e
);