diff --git a/api/error.ts b/api/error.ts index 9fe9f35..1d6bbb2 100644 --- a/api/error.ts +++ b/api/error.ts @@ -1,9 +1,36 @@ -export type NotMemberError = { +/** Scrapbox REST APIが返すエラーの型 */ +export interface ErrorLike { + /** error name */ name: string; + /** error message */ message: string; +} + +/** 参加していないprivate projectに対してAPIを叩いたときに発生するエラー */ +export interface NotMemberError extends ErrorLike { name: "NotMemberError"; - message: string; -}; +} -export type NotFoundError = { +/** 指定したprojectやpageが見つからないときに発生するエラー */ +export interface NotFoundError extends ErrorLike { name: "NotFoundError"; - message: string; -}; +} + +/** owner/admin権限が不足しているときに発生するエラー */ +export interface NotPrivilegeError extends ErrorLike { + name: "NotPrivilegeError"; +} + +/** Loginが必要なAPIをloginせずに叩いたときに発生するエラー */ +export interface NotLoggedInError extends ErrorLike { + name: "NotLoggedInError"; + /** 詳細情報 */ details: { + /** 使用できるログイン方法 */ loginStrategies: ( + | "google" + | "github" + | "microsoft" + | "gyazo" + | "email" + | "saml" + | "easy-trial" + )[]; + }; +}