|
@@ -43,10 +43,7 @@ export class FeedProvider {
|
|
|
);
|
|
|
|
|
|
if (privateTweetHashs.length) {
|
|
|
- const privateTweets = await this.fetchPrivateTweets(
|
|
|
- privateTweetHashs,
|
|
|
- userId
|
|
|
- );
|
|
|
+ const privateTweets = await this.fetchPrivateTweets(privateTweetHashs);
|
|
|
|
|
|
// Combine and sort tweets
|
|
|
return tweets
|
|
@@ -96,10 +93,7 @@ export class FeedProvider {
|
|
|
);
|
|
|
|
|
|
if (privateTweetHashs.length) {
|
|
|
- const privateTweets = await this.fetchPrivateTweets(
|
|
|
- privateTweetHashs,
|
|
|
- this.userId
|
|
|
- );
|
|
|
+ const privateTweets = await this.fetchPrivateTweets(privateTweetHashs);
|
|
|
|
|
|
// Combine and sort tweets
|
|
|
return tweets
|
|
@@ -110,27 +104,24 @@ export class FeedProvider {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private async fetchPrivateTweets(
|
|
|
- privateTweetsData: object[],
|
|
|
- userId: string
|
|
|
- ) {
|
|
|
+ private async fetchPrivateTweets(privateTweetsData: object[]) {
|
|
|
const privateTweets = [];
|
|
|
|
|
|
// Load private tweets from P2P storage
|
|
|
for (let i = 0; i < privateTweetsData.length; i++) {
|
|
|
const hash = privateTweetsData[i]["hash"];
|
|
|
- privateTweetsData[i]["encryptedTweet"] = await this.ipfs.fetchTweet(hash);
|
|
|
- }
|
|
|
+ const userId = privateTweetsData[i]["userId"];
|
|
|
+ const timestamp = privateTweetsData[i]["created_at"];
|
|
|
|
|
|
- // Fetch public key history for user
|
|
|
- const publicKeyHistory: object[] = await this.cryptoUtils.fetchPublicKeyHistoryForUser(
|
|
|
- userId
|
|
|
- );
|
|
|
+ // fetch from IPFS
|
|
|
+ const encryptedTweet = await this.ipfs.fetchTweet(hash);
|
|
|
|
|
|
- // Decrypt tweets
|
|
|
- for (let i = 0; i < privateTweetsData.length; i++) {
|
|
|
- const encryptedTweet = privateTweetsData[i]["encryptedTweet"];
|
|
|
- const timestamp = privateTweetsData[i]["created_at"];
|
|
|
+ // Fetch public key history for user
|
|
|
+ const publicKeyHistory: object[] = await this.cryptoUtils.fetchPublicKeyHistoryForUser(
|
|
|
+ userId
|
|
|
+ );
|
|
|
+
|
|
|
+ // Decrypt tweets
|
|
|
const decryptedTweet = this.cryptoUtils.decrypt(
|
|
|
encryptedTweet,
|
|
|
this.getPublicKeyAt(timestamp, publicKeyHistory)
|