feat: Add functionality to remove a user's game opinion via a new API endpoint and UI button.

This commit is contained in:
2025-12-04 23:11:10 +01:00
parent 5bb70768e3
commit 0ac633bd34
4 changed files with 136 additions and 3 deletions
+62
View File
@@ -112,6 +112,10 @@ export interface AddOpinionRequest {
wouldPlay: boolean;
}
export interface RemoveOpinionRequest {
gameTitle: string;
}
function createBasePerson(): Person {
return { name: "", opinion: [] };
}
@@ -1151,6 +1155,64 @@ export const AddOpinionRequest: MessageFns<AddOpinionRequest> = {
},
};
function createBaseRemoveOpinionRequest(): RemoveOpinionRequest {
return { gameTitle: "" };
}
export const RemoveOpinionRequest: MessageFns<RemoveOpinionRequest> = {
encode(message: RemoveOpinionRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
if (message.gameTitle !== "") {
writer.uint32(10).string(message.gameTitle);
}
return writer;
},
decode(input: BinaryReader | Uint8Array, length?: number): RemoveOpinionRequest {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseRemoveOpinionRequest();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
break;
}
message.gameTitle = reader.string();
continue;
}
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object: any): RemoveOpinionRequest {
return { gameTitle: isSet(object.gameTitle) ? globalThis.String(object.gameTitle) : "" };
},
toJSON(message: RemoveOpinionRequest): unknown {
const obj: any = {};
if (message.gameTitle !== "") {
obj.gameTitle = message.gameTitle;
}
return obj;
},
create<I extends Exact<DeepPartial<RemoveOpinionRequest>, I>>(base?: I): RemoveOpinionRequest {
return RemoveOpinionRequest.fromPartial(base ?? ({} as any));
},
fromPartial<I extends Exact<DeepPartial<RemoveOpinionRequest>, I>>(object: I): RemoveOpinionRequest {
const message = createBaseRemoveOpinionRequest();
message.gameTitle = object.gameTitle ?? "";
return message;
},
};
/** Authentication service */
export interface AuthService {
Login(request: LoginRequest): Promise<LoginResponse>;