From a7e6dc35a8ecffd55a11fde3b69ddbb2caa0dd7e Mon Sep 17 00:00:00 2001 From: Vincent Breitmoser Date: Mon, 2 Jul 2018 14:36:17 +0200 Subject: [PATCH] clean up KeySignatures.sq --- .../keychain/model/KeySignature.java | 13 +++++++++++++ .../keychain/provider/KeyRepository.java | 5 +++-- .../org/sufficientlysecure/keychain/Certs.sq | 1 - .../sufficientlysecure/keychain/KeySignatures.sq | 7 +++++-- .../org/sufficientlysecure/keychain/Keys.sq | 5 ----- 5 files changed, 21 insertions(+), 10 deletions(-) create mode 100644 OpenKeychain/src/main/java/org/sufficientlysecure/keychain/model/KeySignature.java diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/model/KeySignature.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/model/KeySignature.java new file mode 100644 index 000000000..ed3caa1bc --- /dev/null +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/model/KeySignature.java @@ -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 FACTORY = new Factory<>(AutoValue_KeySignature::new); + + public static final Mapper MAPPER = new Mapper<>(FACTORY); +} diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeyRepository.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeyRepository.java index 5eb4f1ad8..5480a0e9d 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeyRepository.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeyRepository.java @@ -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 getMasterKeyIdsBySigner(List 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) { diff --git a/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/Certs.sq b/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/Certs.sq index 6f7d3ec1e..b35ac0405 100644 --- a/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/Certs.sq +++ b/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/Certs.sq @@ -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, diff --git a/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/KeySignatures.sq b/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/KeySignatures.sq index 1b61dadf3..58cc4b0c2 100644 --- a/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/KeySignatures.sq +++ b/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/KeySignatures.sq @@ -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 ?; \ No newline at end of file diff --git a/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/Keys.sq b/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/Keys.sq index d2b902843..be5b21b48 100644 --- a/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/Keys.sq +++ b/OpenKeychain/src/main/sqldelight/org/sufficientlysecure/keychain/Keys.sq @@ -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 ?; \ No newline at end of file