Fix to auth of mutation ops
parent
c7d7e152a0
commit
2058505bf1
|
@ -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,
|
||||
})
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Reference in New Issue