# 蔵書管理サーバ(book_server)
## 実装機能
- * ユーザ登録
- * ISDNによる書籍検索
-
+
+* ユーザ登録
+* ISDNによる書籍検索
+
## ファイル構成
``` text
error.haml # error message view
```
-<div style="page-break-before:always"></div>
-
## テーブル設計
### ユーザ管理テーブル (users)
| --: | --- | --- | --- | --- |
| 1 | isbn | VARCHAR(14) | NOT NULL, PRIMARY KEY | ISBNコード |
| 2 | title | VARCHAR(255) | NOT NULL | 書名 |
-| 3 | volume | INTEGER | | 巻数 |
+| 3 | volume | INTEGER | | 巻数 |
| 4 | series | VARCHAR(255) | | シリーズ名 |
| 5 | author | VARCHAR(127) | | 著者名 |
| 6 | orignal_author | VARCHAR(127) | | 原著者 |
| 13 | update_at | DATETIME | NOT NULL | 更新日時 |
### 蔵書管理テーブル (book\_collections)
+
| 項番 | カラム名 | 型 | 属性 | 概要 |
| --: | --- | --- | --- | --- |
| 1 | isbn | VARCHAR(14) | NOT NULL | ISBNコード |
| 4 | rank | INTEGER | | 評価 |
| 5 | creat_at | DATETIME | NOT NULL | 登録日時 |
| 6 | update_at | DATETIME | NOT NULL | 更新日時 |
+
注: isdn + user_id で複合キーとする。
### 書影管理テーブル (book\_covers)
+
| 項番 | カラム名 | 型 | 属性 | 概要 |
| --: | --- | --- | --- | --- |
| 1 | key_hash | VARCHAR(60) | NOT NULL, PRIMARY KEY | SHA125 HASH (アクセスキー) |
注: 画像をロードした場合の管理用
### NewsReleaseテーブル (news\_Relases)
+
| 項番 | カラム名 | 型 | 属性 | 概要 |
| --: | --- | --- | --- | --- |
| 1 | id | INTAGER | NOT NULL, AUTO_INCREMENT, PRIMARY KEY | ReleaseId |
| 4 | update_at | DATETIME | NOT NULL | 更新日時 |
## 使用RestAPI
+
### openBD
#### 参照URI
+
[openBD](https://openbd.jp)
#### API仕様
-* 書誌情報の取得:
- `/get?isbn=ISBN,ISBN`
-* 収録範囲の取得:
- `/coverage`
-* JSONスキーマの取得:
- `/schema`
-
+
+* 書誌情報の取得: `/get?isbn=ISBN,ISBN`
+* 収録範囲の取得: `/coverage`
+* JSONスキーマの取得: `/schema`
cache_control :public, :must_revalidate, :max_age => 30
id = session[:userId]
delete_id = params[:deleteId]
+ if (id == nil)
+ raise WebError.new(status: 408, message: "セッション期限切れです。再ログインをしてください。")
+ end
if (not UserAccount.checkAdmin(id))
raise WebError.new(status: 405, message: "管理者アカウントでないと操作できません。")
end