0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GROWI TypeScript/JavaScript SDKの紹介(その5:ブックマーク/ブックマークフォルダの操作)

Posted at

オープンソースの社内WikiであるGROWIではREST APIが公開されています。このAPIをより簡単に使えるよう、TypeScript/JavaScript SDKを開発しています。まだ途中ですが、徐々に機能追加していきます。

今回はページをブックマークして置く際に利用するブックマークとブックマークフォルダの操作方法を解説します。

注意点

こちらはコミュニティSDKになります。公式への問い合わせはご遠慮ください。

ソースコード

GROWI TypeScript/JavaScript SDKのソースコードはGitHubにて公開しています。ライセンスはMITです。

goofmint/growi-sdk-alpha

インストール

インストールはnpm/yarn経由で行います。

$ npm install @goofmint/growi-js
# または
$ yarn add @goofmint/growi-js

使い方

まずはSDKをインポートします。

const { GROWI, UserGroup } = require('@goofmint/growi-js');
// または
import { GROWI, UserGroup } from '@goofmint/growi-js';

そして、初期化します。この時、GROWIのAPIトークンを指定します。

const growi = new GROWI({ apiToken: 'your-api-token' });

この他、以下のパラメーターを用意しています。

  • url : GROWIのURLを指定します。デフォルトはhttp://localhost:3000です。
  • path : GROWIのページパスを指定します。デフォルトは `` です。サブディレクトリにインストールしている際に指定します。

現在のユーザーを取得

ブックマークの取得などでユーザー情報を利用するので、 currentUser メソッドで現在のユーザーを取得します。

const user = await growi.currentUser();

ブックマークフォルダ

ブックマークフォルダの取得

現在のブックマークフォルダを取得します。配列で返ってきます。

const bookmarkFolders = await user.bookmarkFolders();

ブックマークフォルダの作成

新しいブックマークフォルダを作成します。名前を付けて、 save メソッドで保存します。

const bookmarkFolder = new BookmarkFolder();
bookmarkFolder.name = 'my folder';
await bookmarkFolder.save();

ブックマークフォルダの更新

名前を変更する場合は、 name プロパティを変更して、新規作成と同じく save メソッドで保存します。

bookmarkFolder.name = 'my folder updated';
await bookmarkFolder.save();

ブックマークフォルダの削除

remove メソッドで削除します。子フォルダも削除されます。

await bookmarkFolder.remove();

ブックマークフォルダを親フォルダに追加

ブックマークフォルダは入れ子にできます。この時、やり方は2通りあります。

まずは、親フォルダを指定して保存する方法です。

// 親フォルダを作成
const bookmarkFolder = new BookmarkFolder();
bookmarkFolder.name = 'Parent';
await bookmarkFolder.save();

// 子フォルダを作成
const bookmarkFolder2 = new BookmarkFolder();
bookmarkFolder2.name = 'Child';
bookmarkFolder2.parent = bookmarkFolder; // 親フォルダを指定
await bookmarkFolder2.save();

または、 addFolder メソッドを使って追加する方法です。

const bookmarkFolder = new BookmarkFolder();
bookmarkFolder.name = 'Parent';
const bookmarkFolder2 = new BookmarkFolder();
bookmarkFolder2.name = 'Child';
await bookmarkFolder.addFolder(bookmarkFolder2); // 親フォルダに追加

親フォルダを変更する

フォルダを移動する際には、 parent プロパティを変更して、 save メソッドで保存します。

const bookmarkFolder3 = new BookmarkFolder();
bookmarkFolder3.name = 'New parent';
bookmarkFolder2.parent = bookmarkFolder3; // 親フォルダを変更
await bookmarkFolder2.save();

ブックマークフォルダの情報を取得

親フォルダを変更した際など、情報を更新したい際には fetch メソッドを使います。

await bookmarkFolder.fetch();

ブックマーク

自分のブックマークを取得

自分のブックマークは bookmarks メソッドで取得します。

const bookmarks = await user.bookmarks();

ページに紐付いたブックマーク情報を取得

自分がブックマークしているかどうか、ブックマークしているユーザー一覧などの情報を取得します。

const page = await growi.root();
const info = await page.bookmarkInfo();
info.bookmarkCount // ブックマーク数
info.bookmarked    // 自分がブックマークしているかどうか
info.users         // ブックマークしているユーザー一覧

ブックマークする

ページを指定してブックマークします。

await user.bookmark(page); // ブックマーク

ブックマークを解除

ブックマークを解除します。2つ目の引数に false を指定します。

await user.bookmark(page, false); // ブックマーク解除

ブックマークしているかどうか

自分がブックマークしているかどうかを確認します。

const bol = await user.isBookmarked(page);

ブックマークフォルダに追加

ブックマークをフォルダに追加する際には、 addPage メソッドを使います。

const folder = new BookmarkFolder();
folder.name = 'my folder';
await folder.save();
await folder.addPage(page);

まとめ

GROWIは社内Wikiとして、社内システムとのデータ連係ニーズが出やすいでしょう。ぜひ、Node.js SDKを使って、GROWIをシステムから操作してください。

OSS開発wikiツールのGROWI | 快適な情報共有を、全ての人へ

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?