Blog Client with Factory and Validator

This implements a simple initial blog client that covers the basic blog
actions, but no deletion/removal of blogs, yet.

Classes for Blogs and Blog Post Headers have been introduced along with
the associated factories.

A `BlogPostValidator` has been added that validates incoming blog posts.

Closes #402
Closes #404
This commit is contained in:
Torsten Grote
2016-06-06 17:06:43 -03:00
parent bbed673150
commit da68ef78f1
21 changed files with 940 additions and 76 deletions

View File

@@ -1,18 +1,25 @@
package org.briarproject.identity;
import org.briarproject.api.contact.Contact;
import org.briarproject.api.db.DatabaseComponent;
import org.briarproject.api.db.DbException;
import org.briarproject.api.db.Transaction;
import org.briarproject.api.identity.Author.Status;
import org.briarproject.api.identity.AuthorId;
import org.briarproject.api.identity.IdentityManager;
import org.briarproject.api.identity.LocalAuthor;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.concurrent.CopyOnWriteArrayList;
import javax.inject.Inject;
import static org.briarproject.api.identity.Author.Status.UNKNOWN;
import static org.briarproject.api.identity.Author.Status.VERIFIED;
class IdentityManagerImpl implements IdentityManager {
private final DatabaseComponent db;
private final List<AddIdentityHook> addHooks;
@@ -87,4 +94,22 @@ class IdentityManagerImpl implements IdentityManager {
db.endTransaction(txn);
}
}
@Override
public Status getAuthorStatus(AuthorId authorId) throws DbException {
Transaction txn = db.startTransaction(false);
try {
// Compare to the IDs of the user's identities
for (LocalAuthor a : db.getLocalAuthors(txn))
if (a.getId().equals(authorId)) return VERIFIED;
// Compare to the IDs of contacts' identities
for (Contact c : db.getContacts(txn))
if (c.getAuthor().getId().equals(authorId)) return VERIFIED;
// TODO also handle UNVERIFIED when #261 is implemented
return UNKNOWN;
} finally {
db.endTransaction(txn);
}
}
}