]> nmode's Git Repositories - signal-cli/blob - lib/src/main/java/org/asamk/signal/manager/storage/accounts/AccountsStore.java
ed6dec9701e27ce6d146ab0d95f08589e56f7040
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / storage / accounts / AccountsStore.java
1 package org.asamk.signal.manager.storage.accounts;
2
3 import org.whispersystems.signalservice.api.push.ACI;
4 import org.whispersystems.signalservice.api.util.PhoneNumberFormatter;
5
6 import java.io.File;
7 import java.util.Arrays;
8 import java.util.Set;
9 import java.util.stream.Collectors;
10
11 public class AccountsStore {
12
13 private final File dataPath;
14
15 public AccountsStore(final File dataPath) {
16 this.dataPath = dataPath;
17 }
18
19 public Set<String> getAllNumbers() {
20 final var files = dataPath.listFiles();
21
22 if (files == null) {
23 return Set.of();
24 }
25
26 return Arrays.stream(files)
27 .filter(File::isFile)
28 .map(File::getName)
29 .filter(file -> PhoneNumberFormatter.isValidNumber(file, null))
30 .collect(Collectors.toSet());
31 }
32
33 public String getPathByNumber(String number) {
34 return number;
35 }
36
37 public String getPathByAci(ACI aci) {
38 return null;
39 }
40
41 public void updateAccount(String path, String number, ACI aci) {
42 // TODO remove number and uuid from all other accounts
43 if (!path.equals(number)) {
44 throw new UnsupportedOperationException("Updating number not supported yet");
45 }
46 }
47
48 public String addAccount(String number, ACI aci) {
49 // TODO remove number and uuid from all other accounts
50 return number;
51 }
52 }