clean up KeySignatures.sq

This commit is contained in:
Vincent Breitmoser 2018-07-02 14:36:17 +02:00
parent a02251274b
commit a7e6dc35a8
5 changed files with 21 additions and 10 deletions

View file

@ -0,0 +1,13 @@
package org.sufficientlysecure.keychain.model;
import com.google.auto.value.AutoValue;
import org.sufficientlysecure.keychain.KeySignaturesModel;
@AutoValue
public abstract class KeySignature implements KeySignaturesModel {
public static final Factory<KeySignature> FACTORY = new Factory<>(AutoValue_KeySignature::new);
public static final Mapper<KeySignature> MAPPER = new Mapper<>(FACTORY);
}

View file

@ -31,6 +31,7 @@ import com.squareup.sqldelight.SqlDelightQuery;
import org.bouncycastle.bcpg.ArmoredOutputStream;
import org.sufficientlysecure.keychain.model.Certification;
import org.sufficientlysecure.keychain.model.KeyRingPublic;
import org.sufficientlysecure.keychain.model.KeySignature;
import org.sufficientlysecure.keychain.model.SubKey;
import org.sufficientlysecure.keychain.model.SubKey.UnifiedKeyInfo;
import org.sufficientlysecure.keychain.model.UserPacket;
@ -132,8 +133,8 @@ public class KeyRepository extends AbstractDao {
public List<Long> getMasterKeyIdsBySigner(List<Long> signerMasterKeyIds) {
long[] signerKeyIds = getLongListAsArray(signerMasterKeyIds);
SqlDelightQuery query = SubKey.FACTORY.selectMasterKeyIdsBySigner(signerKeyIds);
return mapAllRows(query, KeyRingPublic.FACTORY.selectAllMasterKeyIdsMapper()::map);
SqlDelightQuery query = KeySignature.FACTORY.selectMasterKeyIdsBySigner(signerKeyIds);
return mapAllRows(query, KeySignature.FACTORY.selectMasterKeyIdsBySignerMapper()::map);
}
public Long getMasterKeyIdBySubkeyId(long subKeyId) {

View file

@ -1,7 +1,6 @@
import java.lang.Integer;
import org.sufficientlysecure.keychain.pgp.CanonicalizedKeyRing.VerificationStatus;
-- TODO implement. this is only here for reference in SQLDelight
CREATE TABLE IF NOT EXISTS certs(
master_key_id INTEGER NOT NULL,
rank INTEGER NOT NULL,

View file

@ -2,6 +2,9 @@ CREATE TABLE IF NOT EXISTS key_signatures (
master_key_id INTEGER NOT NULL,
signer_key_id INTEGER NOT NULL,
PRIMARY KEY(master_key_id, signer_key_id),
FOREIGN KEY(master_key_id) REFERENCES
keyrings_public(master_key_id) ON DELETE CASCADE
FOREIGN KEY(master_key_id) REFERENCES keyrings_public(master_key_id) ON DELETE CASCADE
);
selectMasterKeyIdsBySigner:
SELECT master_key_id
FROM key_signatures WHERE signer_key_id IN ?;

View file

@ -94,8 +94,3 @@ SELECT key_id
FROM keys
WHERE is_revoked = 0 AND is_secure = 1 AND has_secret > 1 AND ( expiry IS NULL OR expiry >= date('now') )
AND can_authenticate = 1 AND master_key_id = ?;
-- TODO move to KeySignatures.sq
selectMasterKeyIdsBySigner:
SELECT master_key_id
FROM key_signatures WHERE signer_key_id IN ?;