...

Package internal

import "app/internal"
Overview
Index

Overview ▾

Package internal は, Ginフレームワークのハンドラの設定等をするパッケージです.

docker-composeの環境下では

import app/internal

でimportできます.

Variables

DB funcs

var (
    db  *gorm.DB
    err error
)

func CloseDB

func CloseDB()

CloseDB はGORMの接続を閉じる為のメソッドです。

このメソッドはInitDB()と一緒にdeferで呼び出されることが推奨されます。

func CreateAccount

func CreateAccount(c *gin.Context)

CreateAccount はリクエストのデータでユーザを新たに作成するメソッドです. 途中でエラーが発生した場合の挙動はwikiを参照してください.

Endpoints

[POST]   /api/v1/user/new

func CreateMono

func CreateMono(c *gin.Context)

CreateMono は, リクエストに含まれる情報をitemsテーブルに追加するメソッドです. 途中でエラーが発生した場合の挙動はwikiを参照してください.

Endpoints

[POST]   /api/v1/mono/new

func CreateTag

func CreateTag(c *gin.Context)

CreateTag はuserIdを付加したTagを全て取得するメソッドです. 途中でエラーが発生した場合の挙動はwikiを参照してください.

Endpoints

[POST]   /api/v1/tag/new

func DeleteAccount

func DeleteAccount(c *gin.Context)

DeleteAccount は該当アカウントを削除するメソッドです. 途中でエラーが発生した場合の挙動はwikiを参照してください.

Endpoints

[DELETE]   /api/v1/user/

func DeleteMono

func DeleteMono(c *gin.Context)

DeleteMono は, リクエストに含まれるuserIdを持つデータをitemsテーブルから削除するメソッドです. 途中でエラーが発生した場合の挙動はwikiを参照してください.

Endpoints

[DELETE] /api/v1/mono/:monoId

func DeleteTag

func DeleteTag(c *gin.Context)

DeleteTag tagIdを元にデータを削除するメソッドです. 途中でエラーが発生した場合の挙動はwikiを参照してください.

Endpoints

[DELETE] /api/v1/tag/:tagId

func GetCookie

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

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

func GetInfo(c *gin.Context)

GetInfo は, ログイン時に保存されるCookieのtoken情報を元にusersテーブルから該当の情報を返却するメソッドです. 途中でエラーが発生した場合の挙動はwikiを参照してください.

Endpoints

[GET]	/api/v1/user/info

func GetMonos

func GetMonos(c *gin.Context)

GetMonos は, itemsテーブルからMonoの情報を集めて返却するメソッドです. 途中でエラーが発生した場合の挙動はwikiを参照してください.

Endpoints

[GET]	/api/v1/mono

func GetTags

func GetTags(c *gin.Context)

GetTags はuserIdが一致するTagを全て取得するメソッドです. 途中でエラーが発生した場合の挙動はwikiを参照してください.

Endpoints

[GET]    /api/v1/tag/

func InitDB

func InitDB()

InitDB は, 内部でGorm.Open()を行うメソッドです.

このメソッドはmain関数で一度呼び, Gormの機能を使用したい場合はGetDB()でdbを受け取ってから処理することを推奨しています.

func Login

func Login(c *gin.Context)

Login は, userIdとパスワードの正当性が確かめられた時にCookieにtokenをセットして返すメソッドです. 途中でエラーが発生した場合の挙動はwikiを参照してください.

Endpoints

POST   /api/v1/user/login

func Logout

func Logout(c *gin.Context)

Logout はユーザが保持しているCookieを削除するメソッドです. 途中でエラーが発生した場合の挙動はwikiを参照してください.

Endpoints

[DELETE]   /api/v1/user/logout

func SearchMonos

func SearchMonos(c *gin.Context)

SearchMonos は, メソッドです. 途中でエラーが発生した場合の挙動はwikiを参照してください.

Endpoints

[POST]   /api/v1/search/

func SendDefaultHeader

func SendDefaultHeader(c *gin.Context, methods string)

SendDefaultHeader は, JSON Headerに情報を付加するメソッドです.

第2引数に許可するHTTPメソッドを渡します.

以下がサンプルです.

// GETメソッドのみを許可
SendDefaultHeader(c, "GET")
// GETおよびPOSTメソッドを許可
SendDefaultHeader(c, "GET/POST")

func SetCookie

func SetCookie(c *gin.Context, name string, val string)

SetCookie は, Cookie情報を付加するメソッドです.

第2引数にCookie名を, 第三引数にCookieに付加する値を渡します.

以下がサンプルです.

// HogeというCookie名で, Fugaという値を保持
SetCookie(c, "Hoge", "Fuga")

func UpdateAccount

func UpdateAccount(c *gin.Context)

UpdateAccount はリクエストのデータでユーザ情報を更新するメソッドです. 途中でエラーが発生した場合の挙動はwikiを参照してください.

Endpoints

[PUT]   /api/v1/user/

func UpdateMonos

func UpdateMonos(c *gin.Context)

UpdateMonos は, リクエストに該当するitemsテーブルの情報をまとめて更新するメソッドです. 途中でエラーが発生した場合の挙動はwikiを参照してください.

Endpoints

[PUT]    /api/v1/mono/:monoId

func UpdateTag

func UpdateTag(c *gin.Context)

UpdateTag はuserIdを付加したTagを更新するメソッドです. 途中でエラーが発生した場合の挙動はwikiを参照してください.

Endpoints

[PUT]    /api/v1/tag/:tagId

type Data

datas

type Data struct {
    // id
    Id int `json:id`
    // name
    Name string `json:name`
    // type
    Type string `json:type`
}

type Item

items

type Item struct {
    // id
    Id int `json:id`
    // name
    Name string `json:name`
    // userId
    UserId int `json:userId`
    // tagId
    TagId int `json:tagId`
}

type ItemData

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`
}

type Tag

tags

type Tag struct {
    // id
    Id int `json:id`
    // name
    Name string `json:name`
    // parentId
    ParentId int `json:parentId`
    // userId
    UserId int `json:userId`
}

type Token

tokens

type Token struct {
    // token
    Token string `json:token`
    // userId
    UserId int `json:userId`
}

type User

users

type User struct {
    // id
    Id int `json:id`
    // name
    Name string `json:name`
    // hashedPass
    HashedPass string `json:hashedPass`
}