Release Healer Man 0.1.6
This commit is contained in:
1 parent
55cfd43d66
commit
b12fb84859
96 files changed
+10874
-609
No files matched your search
@@ -6,6 +6,8 @@ import {
|
||||
type AccountResult,
|
||||
} from "./accountRepository";
|
||||
import type { CharacterProfile, PlayerSession } from "./types";
|
||||
import type { OnlineGroupSnapshot, StartOnlineGroupActivityInput } from "./onlineGroupTypes";
|
||||
import type { OnlineSessionSnapshot, OnlineSessionSyncInput } from "./onlineSessionTypes";
|
||||
|
||||
const NATIVE_API_ORIGIN = "https://iwanttoheal.phenomrom.com";
|
||||
const SAVE_DEBOUNCE_MS = 500;
|
||||
@@ -159,3 +161,77 @@ export async function logoutOnlineSession(session: PlayerSession | null): Promis
|
||||
}
|
||||
if (activeSession?.ownerId === session?.ownerId) activeSession = null;
|
||||
}
|
||||
|
||||
function onlineGroupRequest<T>(session: PlayerSession, pathname: string, init: RequestInit = {}): Promise<T> {
|
||||
if (!session.accessToken) throw new OnlineApiError("Online grouping requires a signed-in account.", 401);
|
||||
return requestOnlineJson<T>(pathname, init, session.accessToken);
|
||||
}
|
||||
|
||||
export function fetchOnlineGroup(session: PlayerSession): Promise<OnlineGroupSnapshot> {
|
||||
return onlineGroupRequest(session, "/api/online-group");
|
||||
}
|
||||
|
||||
export async function inviteOnlineGroupPlayer(session: PlayerSession, username: string): Promise<OnlineGroupSnapshot> {
|
||||
const response = await onlineGroupRequest<{ state: OnlineGroupSnapshot }>(session, "/api/online-group/invite", {
|
||||
method: "POST",
|
||||
body: JSON.stringify({ username }),
|
||||
});
|
||||
return response.state;
|
||||
}
|
||||
|
||||
export function respondToOnlineGroupInvite(
|
||||
session: PlayerSession,
|
||||
inviteId: string,
|
||||
accept: boolean,
|
||||
): Promise<OnlineGroupSnapshot> {
|
||||
return onlineGroupRequest(session, "/api/online-group/invite/respond", {
|
||||
method: "POST",
|
||||
body: JSON.stringify({ inviteId, accept }),
|
||||
});
|
||||
}
|
||||
|
||||
export function leaveOnlineGroup(session: PlayerSession): Promise<OnlineGroupSnapshot> {
|
||||
return onlineGroupRequest(session, "/api/online-group/leave", { method: "POST" });
|
||||
}
|
||||
|
||||
export function removeOnlineGroupPlayer(session: PlayerSession, accountId: string): Promise<OnlineGroupSnapshot> {
|
||||
return onlineGroupRequest(session, "/api/online-group/remove", {
|
||||
method: "POST",
|
||||
body: JSON.stringify({ accountId }),
|
||||
});
|
||||
}
|
||||
|
||||
export function updateOnlineGroupMember(
|
||||
session: PlayerSession,
|
||||
character: CharacterProfile,
|
||||
role: string,
|
||||
): Promise<OnlineGroupSnapshot> {
|
||||
return onlineGroupRequest(session, "/api/online-group/member", {
|
||||
method: "PUT",
|
||||
body: JSON.stringify({ character, role }),
|
||||
});
|
||||
}
|
||||
|
||||
export function startOnlineGroupActivity(
|
||||
session: PlayerSession,
|
||||
activity: StartOnlineGroupActivityInput,
|
||||
): Promise<OnlineGroupSnapshot> {
|
||||
return onlineGroupRequest(session, "/api/online-group/activity", {
|
||||
method: "POST",
|
||||
body: JSON.stringify(activity),
|
||||
});
|
||||
}
|
||||
|
||||
export function clearOnlineGroupActivity(session: PlayerSession): Promise<OnlineGroupSnapshot> {
|
||||
return onlineGroupRequest(session, "/api/online-group/activity/clear", { method: "POST" });
|
||||
}
|
||||
|
||||
export function synchronizeOnlineSession(
|
||||
session: PlayerSession,
|
||||
input: OnlineSessionSyncInput,
|
||||
): Promise<OnlineSessionSnapshot> {
|
||||
return onlineGroupRequest(session, "/api/online-session/sync", {
|
||||
method: "POST",
|
||||
body: JSON.stringify(input),
|
||||
});
|
||||
}
|
||||
Reference in new issue
Block a user