Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

メモ #1

Open
3 of 6 tasks
marihachi opened this issue Mar 3, 2019 · 0 comments
Open
3 of 6 tasks

メモ #1

marihachi opened this issue Mar 3, 2019 · 0 comments

Comments

@marihachi
Copy link
Owner

marihachi commented Mar 3, 2019

新Misskeyテーマストア案

  • テーマ一覧表示
  • 詳細ページのスクリーンショット表示
  • テーマファイルをダウンロードできるように
  • テーマ名検索
  • ユーザー名検索
  • タグ検索

使用技術・環境

  • Node.js
  • TypeScript
  • Vue.js
  • MongoDB
  • ファイルR/W

エンドポイント

ユーザーの登録 POST /signup

概要

ユーザーのログイン情報を登録してセッションを発行します

パラメータ

  • username ユーザー名
  • password パスワード

セッション

不要


ログイン POST /signin

概要

ユーザーのログイン情報を使ってセッションを発行します

パラメータ

  • username ユーザー名
  • password パスワード

セッション

不要


ユーザー情報の取得 POST /user/resolve

概要

ユーザー名からidに名前解決
JSON形式で以下のデータを返す:

  • userId ユーザーID

パラメータ

  • username ユーザー名

セッション

不要


ユーザー情報の取得 POST /user/theme/list

概要

JSON形式で以下のデータを返す:

  • themes ユーザーが投稿したテーマの一覧

パラメータ

  • userId ユーザーID

セッション

不要


テーマ情報の取得 POST /theme/get

概要

JSON形式で以下のデータを返す:

  • name テーマ名
  • description テーマの概要
  • userId ユーザーID
  • themeFileName テーマデータのファイル名
  • imageFileName テーマのスクリーンショットのファイル名

パラメータ

  • themeId テーマID

セッション

不要


テーマ情報を一覧取得 POST /theme/list

概要

最新30件取得

パラメータ

  • cursor ページネーションID (optional)

セッション

不要


テーマデータの登録(パラメータとして) POST /theme/register

概要

themeDataパラメータにテーマデータを渡すことによってテーマを登録

パラメータ

  • themeData テーマデータ

セッション

必要


テーマのスクリーンショットの登録 POST /theme/image/register

概要

パラメータ

  • themeId テーマID
  • imageData 画像データ

セッション

必要


テーマ情報の更新 POST /theme/update

概要

登録されている各種テーマ情報の更新

パラメータ

  • themeId テーマID
  • description テーマの概要 (optional)

セッション

必要


テーマの削除 POST /theme/delete

概要

登録されているテーマの削除

パラメータ

  • themeId テーマID

セッション

必要

ページ

ユーザーページ /user/{username}

username -> userId
/user/resolve
resultType: userId

/user/get
resultType: userWithThemes

テーマの詳細ページ /theme/{themeId}

/theme/get
resultType: theme

テーマ一覧 /theme

/theme/list
resultType: themes

テーマ一覧(ページネーション) /theme?cursor={ページネーションID}

/theme/list
resultType: themes

テーマ名検索 /search?type=theme&q={キーワード}

未定

ユーザー名検索 /search?type=user&q={キーワード}

未定

レスポンス構造

interface Session {
	userId: string;
	token: string;
}
interface User {
	userId: string;
	username: string;
}
interface Theme {
	themeId: string;
	user: User;
	name: string;
	description: string;
	themeFileName: string | null;
	imageFileName: string | null;
	primaryColor: string;
	secondaryColor: string;
	textColor: string;
}
interface UserWithThemes extends User {
	themes: Theme[];
}
interface Event {
	type: string;
}
interface ThemeUpdatedEvent extends Event {
	type: 'update.theme';
	themeId: string;
}
interface ThemeDeletedEvent extends Event {
	type: 'delete.theme';
	themeId: string;
}

interface SessionResult {
	resultType: 'session';
	result: Session;
}
interface UserIdResult {
	resultType: 'userId';
	result: string;
}
interface UserWithThemesResult {
	resultType: 'userWithThemes';
	result: UserWithThemes;
}
interface ThemeResult {
	resultType: 'theme';
	result: Theme;
}
interface ThemesResult {
	resultType: 'themes';
	result: Theme[];
}
interface EmptyResult {
	resultType: 'empty';
	result: { };
}
interface EventsResult {
	resultType: 'events';
	result: {
		collection: Event[];
		newerCursor: string;
	};
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant