/*
        public void retrieveAttachment(String relay, long attachmentId, File destination)// throws IOException
        {
            String path = string.Format(ATTACHMENT_PATH, attachmentId.ToString());

            if (!Util.isEmpty(relay))
            {
                path = path + "?relay=" + relay;
            }

            String response = makeRequest(path, "GET", null);
            //AttachmentDescriptor descriptor = JsonUtil.fromJson(response, AttachmentDescriptor.class);

            //Log.w(TAG, "Attachment: " + attachmentId + " is at: " + descriptor.getLocation());

            //downloadExternalFile(descriptor.getLocation(), destination);

            throw new NotImplementedException();
        }*/

        public async Task<List<ContactTokenDetails>> retrieveDirectory(ICollection<String> contactTokens) // TODO: whacky
                                                                                              //throws NonSuccessfulResponseCodeException, PushNetworkException
        {
            LinkedList<HashSet<String>> temp = new LinkedList<HashSet<String>>();
            ContactTokenList contactTokenList = new ContactTokenList(contactTokens.ToList());
            String response = await makeRequest(DIRECTORY_TOKENS_PATH, "PUT", JsonUtil.toJson(contactTokenList));
            ContactTokenDetailsList activeTokens = JsonUtil.fromJson<ContactTokenDetailsList>(response);

            return activeTokens.getContacts();
        }