DB funcs
var ( db *gorm.DB err error )
func CloseDB()
CloseDB はGORMの接続を閉じる為のメソッドです。
このメソッドはInitDB()と一緒にdeferで呼び出されることが推奨されます。
func CreateAccount(c *gin.Context)
CreateAccount はリクエストのデータでユーザを新たに作成するメソッドです. 途中でエラーが発生した場合の挙動はwikiを参照してください.
Endpoints
[POST] /api/v1/user/new
func CreateMono(c *gin.Context)
CreateMono は, リクエストに含まれる情報をitemsテーブルに追加するメソッドです. 途中でエラーが発生した場合の挙動はwikiを参照してください.
Endpoints
[POST] /api/v1/mono/new
func CreateTag(c *gin.Context)
CreateTag はuserIdを付加したTagを全て取得するメソッドです. 途中でエラーが発生した場合の挙動はwikiを参照してください.
Endpoints
[POST] /api/v1/tag/new
func DeleteAccount(c *gin.Context)
DeleteAccount は該当アカウントを削除するメソッドです. 途中でエラーが発生した場合の挙動はwikiを参照してください.
Endpoints
[DELETE] /api/v1/user/
func DeleteMono(c *gin.Context)
DeleteMono は, リクエストに含まれるuserIdを持つデータをitemsテーブルから削除するメソッドです. 途中でエラーが発生した場合の挙動はwikiを参照してください.
Endpoints
[DELETE] /api/v1/mono/:monoId
func DeleteTag(c *gin.Context)
DeleteTag tagIdを元にデータを削除するメソッドです. 途中でエラーが発生した場合の挙動はwikiを参照してください.
Endpoints
[DELETE] /api/v1/tag/:tagId
func GetCookie(c *gin.Context, name string) (string, error)
GetCookie は, Cookie情報を読み取るメソッドです.
第2引数にCookie名を渡します.
第1返り値に読み取ったCookie情報を, 第2返り値にエラーを返します.
以下がサンプルです.
// HogeというCookie名の情報を読み取る. // 返り値としてcookie_valueというCookie情報と, errというエラーを受け取る. cookie_value, err := GetCookie(c, "Hoge") // エラーハンドリング if err != nil { log.Fatal(err.Error) }
func GetDB() *gorm.DB
GetDB は, InitDB()でGorm.Open()したdbのデータのみを受け取るメソッドです.
このメソッドを使用する際はInitDB()を必ず呼び出してください.
以下がサンプルです.
db := GetDB() var users []User if err := db.Find(&users).Error; err != nil { log.Fatal(err.Error) }
func GetInfo(c *gin.Context)
GetInfo は, ログイン時に保存されるCookieのtoken情報を元にusersテーブルから該当の情報を返却するメソッドです. 途中でエラーが発生した場合の挙動はwikiを参照してください.
Endpoints
[GET] /api/v1/user/info
func GetMonos(c *gin.Context)
GetMonos は, itemsテーブルからMonoの情報を集めて返却するメソッドです. 途中でエラーが発生した場合の挙動はwikiを参照してください.
Endpoints
[GET] /api/v1/mono
func GetTags(c *gin.Context)
GetTags はuserIdが一致するTagを全て取得するメソッドです. 途中でエラーが発生した場合の挙動はwikiを参照してください.
Endpoints
[GET] /api/v1/tag/
func InitDB()
InitDB は, 内部でGorm.Open()を行うメソッドです.
このメソッドはmain関数で一度呼び, Gormの機能を使用したい場合はGetDB()でdbを受け取ってから処理することを推奨しています.
func Login(c *gin.Context)
Login は, userIdとパスワードの正当性が確かめられた時にCookieにtokenをセットして返すメソッドです. 途中でエラーが発生した場合の挙動はwikiを参照してください.
Endpoints
POST /api/v1/user/login
func Logout(c *gin.Context)
Logout はユーザが保持しているCookieを削除するメソッドです. 途中でエラーが発生した場合の挙動はwikiを参照してください.
Endpoints
[DELETE] /api/v1/user/logout
func SearchMonos(c *gin.Context)
SearchMonos は, メソッドです. 途中でエラーが発生した場合の挙動はwikiを参照してください.
Endpoints
[POST] /api/v1/search/
func SendDefaultHeader(c *gin.Context, methods string)
SendDefaultHeader は, JSON Headerに情報を付加するメソッドです.
第2引数に許可するHTTPメソッドを渡します.
以下がサンプルです.
// GETメソッドのみを許可 SendDefaultHeader(c, "GET") // GETおよびPOSTメソッドを許可 SendDefaultHeader(c, "GET/POST")
func SetCookie(c *gin.Context, name string, val string)
SetCookie は, Cookie情報を付加するメソッドです.
第2引数にCookie名を, 第三引数にCookieに付加する値を渡します.
以下がサンプルです.
// HogeというCookie名で, Fugaという値を保持 SetCookie(c, "Hoge", "Fuga")
func UpdateAccount(c *gin.Context)
UpdateAccount はリクエストのデータでユーザ情報を更新するメソッドです. 途中でエラーが発生した場合の挙動はwikiを参照してください.
Endpoints
[PUT] /api/v1/user/
func UpdateMonos(c *gin.Context)
UpdateMonos は, リクエストに該当するitemsテーブルの情報をまとめて更新するメソッドです. 途中でエラーが発生した場合の挙動はwikiを参照してください.
Endpoints
[PUT] /api/v1/mono/:monoId
func UpdateTag(c *gin.Context)
UpdateTag はuserIdを付加したTagを更新するメソッドです. 途中でエラーが発生した場合の挙動はwikiを参照してください.
Endpoints
[PUT] /api/v1/tag/:tagId
datas
type Data struct { // id Id int `json:id` // name Name string `json:name` // type Type string `json:type` }
items
type Item struct { // id Id int `json:id` // name Name string `json:name` // userId UserId int `json:userId` // tagId TagId int `json:tagId` }
itemdatas
type ItemData struct { // dataId DataId int `json:dataId` // itemId ItemId int `json:itemId` // num Num float64 `json:num` // str Str string `json:str` // timestamp Timestamp time.Time `json:timestamp` }
tags
type Tag struct { // id Id int `json:id` // name Name string `json:name` // parentId ParentId int `json:parentId` // userId UserId int `json:userId` }
tokens
type Token struct { // token Token string `json:token` // userId UserId int `json:userId` }
users
type User struct { // id Id int `json:id` // name Name string `json:name` // hashedPass HashedPass string `json:hashedPass` }