cleanup of new result code

This commit is contained in:
Moritz Jung 2026-05-06 17:03:31 +02:00
parent 498e2611ae
commit 5a032a87ae
23 changed files with 323 additions and 303 deletions

View file

@ -3,9 +3,9 @@ import { APIModel } from 'packages/obsidian/src/api/APIModel';
import type MediaDbPlugin from 'packages/obsidian/src/main';
import { BoardGameModel } from 'packages/obsidian/src/models/BoardGameModel';
import type { MediaTypeModel } from 'packages/obsidian/src/models/MediaTypeModel';
import type { AppError } from 'packages/obsidian/src/utils/AppError';
import { AppErrorKind, toAppError } from 'packages/obsidian/src/utils/AppError';
import { Logger } from 'packages/obsidian/src/utils/Logger';
import type { MDBError } from 'packages/obsidian/src/utils/MDBError';
import { MDBErrorKind, toMdbError } from 'packages/obsidian/src/utils/MDBError';
import { MediaType } from 'packages/obsidian/src/utils/MediaType';
import type { Result } from 'packages/obsidian/src/utils/result';
import { err, fromPromise, ok } from 'packages/obsidian/src/utils/result';
@ -25,12 +25,12 @@ export class BoardGameGeekAPI extends APIModel {
this.types = [MediaType.BoardGame];
}
async searchByTitle(title: string): Promise<Result<MediaTypeModel[], AppError>> {
async searchByTitle(title: string): Promise<Result<MediaTypeModel[], MDBError>> {
Logger.log(`MDB | api "${this.apiName}" queried by Title`);
const key = this.plugin.app.secretStorage.getSecret(this.plugin.settings.BoardgameGeekKeyId);
if (!key) {
return err({
kind: AppErrorKind.Validation,
kind: MDBErrorKind.Validation,
message: `MDB | API key for ${this.apiName} missing.`,
userMessage: `API key for ${this.apiName} missing.`,
context: { apiName: this.apiName },
@ -46,8 +46,8 @@ export class BoardGameGeekAPI extends APIModel {
},
}),
cause =>
toAppError(cause, {
kind: AppErrorKind.Network,
toMdbError(cause, {
kind: MDBErrorKind.Network,
message: `MDB | Network error querying ${this.apiName}`,
userMessage: `Network error querying ${this.apiName}`,
context: { apiName: this.apiName, title },
@ -61,7 +61,7 @@ export class BoardGameGeekAPI extends APIModel {
if (fetchData.status === 401) {
return err({
kind: AppErrorKind.Api,
kind: MDBErrorKind.Api,
message: `MDB | Authentication for ${this.apiName} failed. Check the API key.`,
userMessage: `Authentication for ${this.apiName} failed. Check the API key.`,
context: { apiName: this.apiName },
@ -70,7 +70,7 @@ export class BoardGameGeekAPI extends APIModel {
if (fetchData.status !== 200) {
return err({
kind: AppErrorKind.Api,
kind: MDBErrorKind.Api,
message: `MDB | Received status code ${fetchData.status} from ${this.apiName}.`,
userMessage: `Received status code ${fetchData.status} from ${this.apiName}.`,
context: { apiName: this.apiName, status: fetchData.status },
@ -103,12 +103,12 @@ export class BoardGameGeekAPI extends APIModel {
return ok(ret);
}
async getById(id: string): Promise<Result<MediaTypeModel, AppError>> {
async getById(id: string): Promise<Result<MediaTypeModel, MDBError>> {
Logger.log(`MDB | api "${this.apiName}" queried by ID`);
const key = this.plugin.app.secretStorage.getSecret(this.plugin.settings.BoardgameGeekKeyId);
if (!key) {
return err({
kind: AppErrorKind.Validation,
kind: MDBErrorKind.Validation,
message: `MDB | API key for ${this.apiName} missing.`,
userMessage: `API key for ${this.apiName} missing.`,
context: { apiName: this.apiName },
@ -124,8 +124,8 @@ export class BoardGameGeekAPI extends APIModel {
},
}),
cause =>
toAppError(cause, {
kind: AppErrorKind.Network,
toMdbError(cause, {
kind: MDBErrorKind.Network,
message: `MDB | Network error querying ${this.apiName}`,
userMessage: `Network error querying ${this.apiName}`,
context: { apiName: this.apiName, id },
@ -139,7 +139,7 @@ export class BoardGameGeekAPI extends APIModel {
if (fetchData.status === 401) {
return err({
kind: AppErrorKind.Api,
kind: MDBErrorKind.Api,
message: `MDB | Authentication for ${this.apiName} failed. Check the API key.`,
userMessage: `Authentication for ${this.apiName} failed. Check the API key.`,
context: { apiName: this.apiName },
@ -148,7 +148,7 @@ export class BoardGameGeekAPI extends APIModel {
if (fetchData.status !== 200) {
return err({
kind: AppErrorKind.Api,
kind: MDBErrorKind.Api,
message: `MDB | Received status code ${fetchData.status} from ${this.apiName}.`,
userMessage: `Received status code ${fetchData.status} from ${this.apiName}.`,
context: { apiName: this.apiName, status: fetchData.status, id },
@ -162,7 +162,7 @@ export class BoardGameGeekAPI extends APIModel {
const boardgame = response.querySelector('boardgame');
if (!boardgame) {
return err({
kind: AppErrorKind.Api,
kind: MDBErrorKind.Api,
message: `MDB | Received invalid data from ${this.apiName}.`,
userMessage: `Received invalid data from ${this.apiName}.`,
context: { apiName: this.apiName, id },