ReviewDB fixes

This commit is contained in:
Vendicated 2024-01-15 17:36:24 +01:00
parent 8bd54173db
commit a171b35e97
No known key found for this signature in database
GPG key ID: D66986BAF75ECF18
4 changed files with 24 additions and 24 deletions

View file

@ -14,7 +14,7 @@ import { ReviewDBAuth } from "./entities";
const DATA_STORE_KEY = "rdb-auth"; const DATA_STORE_KEY = "rdb-auth";
const OAuth = findByPropsLazy("OAuth2AuthorizeModal"); const { OAuth2AuthorizeModal } = findByPropsLazy("OAuth2AuthorizeModal");
export let Auth: ReviewDBAuth = {}; export let Auth: ReviewDBAuth = {};
@ -46,7 +46,7 @@ export async function updateAuth(newAuth: ReviewDBAuth) {
export function authorize(callback?: any) { export function authorize(callback?: any) {
openModal(props => openModal(props =>
<OAuth.OAuth2AuthorizeModal <OAuth2AuthorizeModal
{...props} {...props}
scopes={["identify"]} scopes={["identify"]}
responseType="code" responseType="code"
@ -64,7 +64,7 @@ export function authorize(callback?: any) {
const { token, success } = await res.json(); const { token, success } = await res.json();
if (success) { if (success) {
updateAuth({ token }); updateAuth({ token });
showToast("Successfully logged in!"); showToast("Successfully logged in!", Toasts.Type.SUCCESS);
callback?.(); callback?.();
} else if (res.status === 1) { } else if (res.status === 1) {
showToast("An Error occurred while logging in.", Toasts.Type.FAILURE); showToast("An Error occurred while logging in.", Toasts.Type.FAILURE);

View file

@ -32,7 +32,7 @@ import { BlockButton, DeleteButton, ReportButton } from "./MessageButton";
import ReviewBadge from "./ReviewBadge"; import ReviewBadge from "./ReviewBadge";
export default LazyComponent(() => { export default LazyComponent(() => {
// this is terrible, blame ven // this is terrible, blame mantika
const p = filters.byProps; const p = filters.byProps;
const [ const [
{ cozyMessage, buttons, message, buttonsInner, groupStart }, { cozyMessage, buttons, message, buttonsInner, groupStart },

View file

@ -28,8 +28,8 @@ import { cl } from "../utils";
import ReviewComponent from "./ReviewComponent"; import ReviewComponent from "./ReviewComponent";
const Slate = findByPropsLazy("Editor", "Transforms"); const { Editor, Transforms } = findByPropsLazy("Editor", "Transforms");
const InputTypes = findByPropsLazy("ChatInputTypes"); const { ChatInputTypes } = findByPropsLazy("ChatInputTypes");
const InputComponent = LazyComponent(() => find(m => m.default?.type?.render?.toString().includes("default.CHANNEL_TEXT_AREA")).default); const InputComponent = LazyComponent(() => find(m => m.default?.type?.render?.toString().includes("default.CHANNEL_TEXT_AREA")).default);
@ -122,7 +122,7 @@ function ReviewList({ refetch, reviews, hideOwnReview, profileId }: { refetch():
export function ReviewsInputComponent({ discordId, isAuthor, refetch, name }: { discordId: string, name: string; isAuthor: boolean; refetch(): void; }) { export function ReviewsInputComponent({ discordId, isAuthor, refetch, name }: { discordId: string, name: string; isAuthor: boolean; refetch(): void; }) {
const { token } = Auth; const { token } = Auth;
const editorRef = useRef<any>(null); const editorRef = useRef<any>(null);
const inputType = InputTypes.ChatInputTypes.FORM; const inputType = ChatInputTypes.FORM;
inputType.disableAutoFocus = true; inputType.disableAutoFocus = true;
const channel = { const channel = {
@ -172,10 +172,9 @@ export function ReviewsInputComponent({ discordId, isAuthor, refetch, name }: {
refetch(); refetch();
const slateEditor = editorRef.current.ref.current.getSlateEditor(); const slateEditor = editorRef.current.ref.current.getSlateEditor();
const { Editor, Transform } = Slate;
// clear editor // clear editor
Transform.delete(slateEditor, { Transforms.delete(slateEditor, {
at: { at: {
anchor: Editor.start(slateEditor, []), anchor: Editor.start(slateEditor, []),
focus: Editor.end(slateEditor, []), focus: Editor.end(slateEditor, []),

View file

@ -19,10 +19,10 @@
import { showToast, Toasts } from "@webpack/common"; import { showToast, Toasts } from "@webpack/common";
import { Auth, authorize, getToken, updateAuth } from "./auth"; import { Auth, authorize, getToken, updateAuth } from "./auth";
import { Review, ReviewDBCurrentUser, ReviewDBUser } from "./entities"; import { Review, ReviewDBCurrentUser, ReviewDBUser, ReviewType } from "./entities";
import { settings } from "./settings"; import { settings } from "./settings";
const API_URL = "https://manti.vendicated.dev"; const API_URL = "https://manti.vendicated.dev/api/reviewdb";
export const REVIEWS_PER_PAGE = 50; export const REVIEWS_PER_PAGE = 50;
@ -45,13 +45,13 @@ export async function getReviews(id: string, offset = 0): Promise<Response> {
flags: String(flags), flags: String(flags),
offset: String(offset) offset: String(offset)
}); });
const req = await fetch(`${API_URL}/api/reviewdb/users/${id}/reviews?${params}`); const req = await fetch(`${API_URL}/users/${id}/reviews?${params}`);
const res = (req.status === 200) const res = (req.status === 200)
? await req.json() as Response ? await req.json() as Response
: { : {
success: false, success: false,
message: "An Error occured while fetching reviews. Please try again later.", message: req.status === 429 ? "You are sending requests too fast. Wait a few seconds and try again." : "An Error occured while fetching reviews. Please try again later.",
reviews: [], reviews: [],
updated: false, updated: false,
hasNextPage: false, hasNextPage: false,
@ -65,14 +65,15 @@ export async function getReviews(id: string, offset = 0): Promise<Response> {
reviews: [ reviews: [
{ {
id: 0, id: 0,
comment: "An Error occured while fetching reviews. Please try again later.", comment: res.message,
star: 0, star: 0,
timestamp: 0, timestamp: 0,
type: ReviewType.System,
sender: { sender: {
id: 0, id: 0,
username: "Error", username: "ReviewDB",
profilePhoto: "https://cdn.discordapp.com/attachments/1045394533384462377/1084900598035513447/646808599204593683.png?size=128", profilePhoto: "https://cdn.discordapp.com/avatars/1134864775000629298/3f87ad315b32ee464d84f1270c8d1b37.png?size=256&format=webp&quality=lossless",
discordID: "0", discordID: "1134864775000629298",
badges: [] badges: []
} }
} }
@ -92,7 +93,7 @@ export async function addReview(review: any): Promise<Response | null> {
return null; return null;
} }
return fetch(API_URL + `/api/reviewdb/users/${review.userid}/reviews`, { return fetch(API_URL + `/users/${review.userid}/reviews`, {
method: "PUT", method: "PUT",
body: JSON.stringify(review), body: JSON.stringify(review),
headers: { headers: {
@ -107,7 +108,7 @@ export async function addReview(review: any): Promise<Response | null> {
} }
export async function deleteReview(id: number): Promise<Response> { export async function deleteReview(id: number): Promise<Response> {
return fetch(API_URL + `/api/reviewdb/users/${id}/reviews`, { return fetch(API_URL + `/users/${id}/reviews`, {
method: "DELETE", method: "DELETE",
headers: new Headers({ headers: new Headers({
"Content-Type": "application/json", "Content-Type": "application/json",
@ -121,7 +122,7 @@ export async function deleteReview(id: number): Promise<Response> {
} }
export async function reportReview(id: number) { export async function reportReview(id: number) {
const res = await fetch(API_URL + "/api/reviewdb/reports", { const res = await fetch(API_URL + "/reports", {
method: "PUT", method: "PUT",
headers: new Headers({ headers: new Headers({
"Content-Type": "application/json", "Content-Type": "application/json",
@ -137,7 +138,7 @@ export async function reportReview(id: number) {
} }
async function patchBlock(action: "block" | "unblock", userId: string) { async function patchBlock(action: "block" | "unblock", userId: string) {
const res = await fetch(API_URL + "/api/reviewdb/blocks", { const res = await fetch(API_URL + "/blocks", {
method: "PATCH", method: "PATCH",
headers: new Headers({ headers: new Headers({
"Content-Type": "application/json", "Content-Type": "application/json",
@ -168,7 +169,7 @@ export const blockUser = (userId: string) => patchBlock("block", userId);
export const unblockUser = (userId: string) => patchBlock("unblock", userId); export const unblockUser = (userId: string) => patchBlock("unblock", userId);
export async function fetchBlocks(): Promise<ReviewDBUser[]> { export async function fetchBlocks(): Promise<ReviewDBUser[]> {
const res = await fetch(API_URL + "/api/reviewdb/blocks", { const res = await fetch(API_URL + "/blocks", {
method: "GET", method: "GET",
headers: new Headers({ headers: new Headers({
Accept: "application/json", Accept: "application/json",
@ -181,14 +182,14 @@ export async function fetchBlocks(): Promise<ReviewDBUser[]> {
} }
export function getCurrentUserInfo(token: string): Promise<ReviewDBCurrentUser> { export function getCurrentUserInfo(token: string): Promise<ReviewDBCurrentUser> {
return fetch(API_URL + "/api/reviewdb/users", { return fetch(API_URL + "/users", {
body: JSON.stringify({ token }), body: JSON.stringify({ token }),
method: "POST", method: "POST",
}).then(r => r.json()); }).then(r => r.json());
} }
export async function readNotification(id: number) { export async function readNotification(id: number) {
return fetch(API_URL + `/api/reviewdb/notifications?id=${id}`, { return fetch(API_URL + `/notifications?id=${id}`, {
method: "PATCH", method: "PATCH",
headers: { headers: {
"Authorization": await getToken() || "", "Authorization": await getToken() || "",