diff options
author | Paul Frazee <pfrazee@gmail.com> | 2022-10-03 11:17:12 -0500 |
---|---|---|
committer | Paul Frazee <pfrazee@gmail.com> | 2022-10-03 11:17:12 -0500 |
commit | 2058505bf12c0ddf145bd00182da96d0cf5e8f53 (patch) | |
tree | b8012a04ab924d5147fa7f17f47c3b66ceeaa83b | |
parent | c7d7e152a0e067a95b3d700147768d4244e464d1 (diff) | |
download | voidsky-2058505bf12c0ddf145bd00182da96d0cf5e8f53.tar.zst |
Fix to auth of mutation ops
-rw-r--r-- | src/state/lib/api.ts | 45 | ||||
-rw-r--r-- | src/state/models/feed-view.ts | 16 | ||||
-rw-r--r-- | src/state/models/post-thread-view.ts | 16 | ||||
-rw-r--r-- | src/state/models/profile-view.ts | 8 | ||||
-rw-r--r-- | src/view/com/modals/ComposePost.tsx | 4 | ||||
-rw-r--r-- | todos.txt | 2 |
6 files changed, 32 insertions, 59 deletions
diff --git a/src/state/lib/api.ts b/src/state/lib/api.ts index 96a7fd755..feed41c41 100644 --- a/src/state/lib/api.ts +++ b/src/state/lib/api.ts @@ -7,22 +7,21 @@ import AdxApi from '../../third-party/api' import {ServiceClient} from '../../third-party/api/src/index' import {AdxUri} from '../../third-party/uri' -import * as storage from './storage' +import {RootStoreModel} from '../models/root-store' export function doPolyfill() { AdxApi.xrpc.fetch = fetchHandler } export async function post( - adx: ServiceClient, - user: string, + store: RootStoreModel, text: string, replyToUri?: string, ) { let reply if (replyToUri) { const replyToUrip = new AdxUri(replyToUri) - const parentPost = await adx.todo.social.post.get({ + const parentPost = await store.api.todo.social.post.get({ nameOrDid: replyToUrip.host, tid: replyToUrip.recordKey, }) @@ -33,8 +32,8 @@ export async function post( } } } - return await adx.todo.social.post.create( - {did: user}, + return await store.api.todo.social.post.create( + {did: store.me.did || ''}, { text, reply, @@ -43,9 +42,9 @@ export async function post( ) } -export async function like(adx: ServiceClient, user: string, uri: string) { - return await adx.todo.social.like.create( - {did: user}, +export async function like(store: RootStoreModel, uri: string) { + return await store.api.todo.social.like.create( + {did: store.me.did || ''}, { subject: uri, createdAt: new Date().toISOString(), @@ -53,17 +52,17 @@ export async function like(adx: ServiceClient, user: string, uri: string) { ) } -export async function unlike(adx: ServiceClient, likeUri: string) { +export async function unlike(store: RootStoreModel, likeUri: string) { const likeUrip = new AdxUri(likeUri) - return await adx.todo.social.like.delete({ + return await store.api.todo.social.like.delete({ did: likeUrip.hostname, tid: likeUrip.recordKey, }) } -export async function repost(adx: ServiceClient, user: string, uri: string) { - return await adx.todo.social.repost.create( - {did: user}, +export async function repost(store: RootStoreModel, uri: string) { + return await store.api.todo.social.repost.create( + {did: store.me.did || ''}, { subject: uri, createdAt: new Date().toISOString(), @@ -71,21 +70,17 @@ export async function repost(adx: ServiceClient, user: string, uri: string) { ) } -export async function unrepost(adx: ServiceClient, repostUri: string) { +export async function unrepost(store: RootStoreModel, repostUri: string) { const repostUrip = new AdxUri(repostUri) - return await adx.todo.social.repost.delete({ + return await store.api.todo.social.repost.delete({ did: repostUrip.hostname, tid: repostUrip.recordKey, }) } -export async function follow( - adx: ServiceClient, - user: string, - subject: string, -) { - return await adx.todo.social.follow.create( - {did: user}, +export async function follow(store: RootStoreModel, subject: string) { + return await store.api.todo.social.follow.create( + {did: store.me.did || ''}, { subject, createdAt: new Date().toISOString(), @@ -93,9 +88,9 @@ export async function follow( ) } -export async function unfollow(adx: ServiceClient, followUri: string) { +export async function unfollow(store: RootStoreModel, followUri: string) { const followUrip = new AdxUri(followUri) - return await adx.todo.social.follow.delete({ + return await store.api.todo.social.follow.delete({ did: followUrip.hostname, tid: followUrip.recordKey, }) diff --git a/src/state/models/feed-view.ts b/src/state/models/feed-view.ts index 585bbce28..9fd024032 100644 --- a/src/state/models/feed-view.ts +++ b/src/state/models/feed-view.ts @@ -61,17 +61,13 @@ export class FeedViewItemModel implements GetFeedView.FeedItem { async toggleLike() { if (this.myState.like) { - await apilib.unlike(this.rootStore.api, this.myState.like) + await apilib.unlike(this.rootStore, this.myState.like) runInAction(() => { this.likeCount-- this.myState.like = undefined }) } else { - const res = await apilib.like( - this.rootStore.api, - 'did:test:alice', - this.uri, - ) + const res = await apilib.like(this.rootStore, this.uri) runInAction(() => { this.likeCount++ this.myState.like = res.uri @@ -81,17 +77,13 @@ export class FeedViewItemModel implements GetFeedView.FeedItem { async toggleRepost() { if (this.myState.repost) { - await apilib.unrepost(this.rootStore.api, this.myState.repost) + await apilib.unrepost(this.rootStore, this.myState.repost) runInAction(() => { this.repostCount-- this.myState.repost = undefined }) } else { - const res = await apilib.repost( - this.rootStore.api, - 'did:test:alice', - this.uri, - ) + const res = await apilib.repost(this.rootStore, this.uri) runInAction(() => { this.repostCount++ this.myState.repost = res.uri diff --git a/src/state/models/post-thread-view.ts b/src/state/models/post-thread-view.ts index 923562c5a..4fb9e75f6 100644 --- a/src/state/models/post-thread-view.ts +++ b/src/state/models/post-thread-view.ts @@ -106,17 +106,13 @@ export class PostThreadViewPostModel implements GetPostThread.Post { async toggleLike() { if (this.myState.like) { - await apilib.unlike(this.rootStore.api, this.myState.like) + await apilib.unlike(this.rootStore, this.myState.like) runInAction(() => { this.likeCount-- this.myState.like = undefined }) } else { - const res = await apilib.like( - this.rootStore.api, - 'did:test:alice', - this.uri, - ) + const res = await apilib.like(this.rootStore, this.uri) runInAction(() => { this.likeCount++ this.myState.like = res.uri @@ -126,17 +122,13 @@ export class PostThreadViewPostModel implements GetPostThread.Post { async toggleRepost() { if (this.myState.repost) { - await apilib.unrepost(this.rootStore.api, this.myState.repost) + await apilib.unrepost(this.rootStore, this.myState.repost) runInAction(() => { this.repostCount-- this.myState.repost = undefined }) } else { - const res = await apilib.repost( - this.rootStore.api, - 'did:test:alice', - this.uri, - ) + const res = await apilib.repost(this.rootStore, this.uri) runInAction(() => { this.repostCount++ this.myState.repost = res.uri diff --git a/src/state/models/profile-view.ts b/src/state/models/profile-view.ts index e7685482e..a7b8a7c7f 100644 --- a/src/state/models/profile-view.ts +++ b/src/state/models/profile-view.ts @@ -74,17 +74,13 @@ export class ProfileViewModel { throw new Error('Not logged in') } if (this.myState.follow) { - await apilib.unfollow(this.rootStore.api, this.myState.follow) + await apilib.unfollow(this.rootStore, this.myState.follow) runInAction(() => { this.followersCount-- this.myState.follow = undefined }) } else { - const res = await apilib.follow( - this.rootStore.api, - this.rootStore.me.did, - this.did, - ) + const res = await apilib.follow(this.rootStore, this.did) runInAction(() => { this.followersCount++ this.myState.follow = res.uri diff --git a/src/view/com/modals/ComposePost.tsx b/src/view/com/modals/ComposePost.tsx index b1309ca83..6acb01005 100644 --- a/src/view/com/modals/ComposePost.tsx +++ b/src/view/com/modals/ComposePost.tsx @@ -48,7 +48,7 @@ export function Component({replyTo}: {replyTo?: string}) { return false } try { - await apilib.post(store.api, 'did:test:alice', text, replyTo) + await apilib.post(store, text, replyTo) } catch (e: any) { console.error(`Failed to create post: ${e.toString()}`) setError( @@ -103,7 +103,7 @@ export function Component({replyTo}: {replyTo?: string}) { start={{x: 0, y: 0}} end={{x: 1, y: 1}} style={styles.postBtn}> - <Text style={[s.white, s.f16, s.semiBold]}>Post</Text> + <Text style={[s.white, s.f16, s.bold]}>Post</Text> </LinearGradient> </TouchableOpacity> </View> diff --git a/todos.txt b/todos.txt index 3c24cce76..82b90a6b4 100644 --- a/todos.txt +++ b/todos.txt @@ -14,8 +14,6 @@ Paul's todo list - Disable badges for now - Disable editing avi or banner - More button -- Notifications view - - * - Linking - Web linking - App linking |