refactor: upgrade masto 5 (#867)

This commit is contained in:
三咲智子 Kevin Deng 2023-01-08 14:21:09 +08:00 committed by GitHub
parent 39034c5777
commit 5c8f75b9b7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
108 changed files with 438 additions and 445 deletions

View file

@ -1,8 +1,4 @@
import type {
CreatePushSubscriptionParams,
PushSubscription as MastoPushSubscription,
SubscriptionPolicy,
} from 'masto'
import type { mastodon } from 'masto'
import type {
CreatePushNotification,
PushManagerSubscriptionInfo,
@ -12,14 +8,14 @@ import type {
export const createPushSubscription = async (
user: RequiredUserLogin,
notificationData: CreatePushNotification,
policy: SubscriptionPolicy = 'all',
policy: mastodon.v1.SubscriptionPolicy = 'all',
force = false,
): Promise<MastoPushSubscription | undefined> => {
): Promise<mastodon.v1.WebPushSubscription | undefined> => {
const { server: serverEndpoint, vapidKey } = user
return await getRegistration()
.then(getPushSubscription)
.then(({ registration, subscription }): Promise<MastoPushSubscription | undefined> => {
.then(({ registration, subscription }): Promise<mastodon.v1.WebPushSubscription | undefined> => {
if (subscription) {
const currentServerKey = (new Uint8Array(subscription.options.applicationServerKey!)).toString()
const subscriptionServerKey = urlBase64ToUint8Array(vapidKey).toString()
@ -114,10 +110,10 @@ async function removePushNotificationDataOnError(e: Error) {
async function sendSubscriptionToBackend(
subscription: PushSubscription,
data: CreatePushNotification,
policy: SubscriptionPolicy,
): Promise<MastoPushSubscription> {
policy: mastodon.v1.SubscriptionPolicy,
): Promise<mastodon.v1.WebPushSubscription> {
const { endpoint, keys } = subscription.toJSON()
const params: CreatePushSubscriptionParams = {
const params: mastodon.v1.CreateWebPushSubscriptionParams = {
policy,
subscription: {
endpoint: endpoint!,
@ -129,5 +125,5 @@ async function sendSubscriptionToBackend(
data,
}
return await useMasto().pushSubscriptions.create(params)
return await useMasto().v1.webPushSubscriptions.create(params)
}

View file

@ -1,4 +1,4 @@
import type { Emoji, PushSubscription as MastoPushSubscription, PushSubscriptionAlerts, SubscriptionPolicy } from 'masto'
import type { mastodon } from 'masto'
import type { UserLogin } from '~/types'
@ -9,18 +9,18 @@ export interface PushManagerSubscriptionInfo {
}
export interface RequiredUserLogin extends Required<Omit<UserLogin, 'account' | 'pushSubscription'>> {
pushSubscription?: MastoPushSubscription
pushSubscription?: mastodon.v1.WebPushSubscription
}
export interface CreatePushNotification {
alerts?: Partial<PushSubscriptionAlerts> | null
policy?: SubscriptionPolicy
alerts?: Partial<mastodon.v1.WebPushSubscriptionAlerts> | null
policy?: mastodon.v1.SubscriptionPolicy
}
export type PushNotificationRequest = Record<string, boolean>
export type PushNotificationPolicy = Record<string, SubscriptionPolicy>
export type PushNotificationPolicy = Record<string, mastodon.v1.SubscriptionPolicy>
export interface CustomEmojisInfo {
lastUpdate: number
emojis: Emoji[]
emojis: mastodon.v1.CustomEmoji[]
}

View file

@ -1,4 +1,4 @@
import type { SubscriptionPolicy } from 'masto'
import type { mastodon } from 'masto'
import type {
CreatePushNotification,
PushNotificationPolicy,
@ -62,7 +62,7 @@ export const usePushManager = () => {
const subscribe = async (
notificationData?: CreatePushNotification,
policy?: SubscriptionPolicy,
policy?: mastodon.v1.SubscriptionPolicy,
force?: boolean,
): Promise<SubscriptionResult> => {
if (!isSupported)
@ -117,7 +117,7 @@ export const usePushManager = () => {
await removePushNotificationData(currentUser.value)
}
const saveSettings = async (policy?: SubscriptionPolicy) => {
const saveSettings = async (policy?: mastodon.v1.SubscriptionPolicy) => {
if (policy)
pushNotificationData.value.policy = policy
@ -168,7 +168,7 @@ export const usePushManager = () => {
if (policyChanged)
await subscribe(data, policy, true)
else
currentUser.value.pushSubscription = await masto.pushSubscriptions.update({ data })
currentUser.value.pushSubscription = await masto.v1.webPushSubscriptions.update({ data })
policyChanged && await nextTick()