合併輸出
This commit is contained in:
14
README.md
14
README.md
@@ -4,13 +4,13 @@ ai 繪圖服務端(快速重構)
|
|||||||
|
|
||||||
TEST:
|
TEST:
|
||||||
|
|
||||||
- [ ] [/api/users](/api/users)
|
- [x] GET [/api/users](/api/users) 用戶列表
|
||||||
- [ ] [/api/sessions](/api/sessions)
|
- [x] GET [/api/sessions](/api/sessions) 會話列表
|
||||||
- [ ] [/api/servers](/api/servers)
|
- [x] GET [/api/servers](/api/servers) 服務器列表
|
||||||
- [ ] [/api/models](/api/models)
|
- [x] GET [/api/models](/api/models) 模型列表
|
||||||
- [ ] [/api/images](/api/images)
|
- [x] GET [/api/images](/api/images) 圖片列表
|
||||||
- [ ] [/api/tasks](/api/tasks)
|
- [x] GET [/api/tasks](/api/tasks) 任務列表
|
||||||
- [ ] [/api/tags](/api/tags)
|
- [ ] GET [/api/tags](/api/tags) 標籤列表
|
||||||
|
|
||||||
|
|
||||||
列表接口:
|
列表接口:
|
||||||
|
@@ -3,6 +3,7 @@ package models
|
|||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"log"
|
"log"
|
||||||
|
"net/http"
|
||||||
)
|
)
|
||||||
|
|
||||||
type ListView struct {
|
type ListView struct {
|
||||||
@@ -13,7 +14,7 @@ type ListView struct {
|
|||||||
List []interface{} `json:"list"`
|
List []interface{} `json:"list"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// 輸出JSON給瀏覽器
|
// 轉換爲JSON並返回
|
||||||
func (listview *ListView) ToJSON() []byte {
|
func (listview *ListView) ToJSON() []byte {
|
||||||
|
|
||||||
// 即使list爲空,也要返回空的JSON數組
|
// 即使list爲空,也要返回空的JSON數組
|
||||||
@@ -29,3 +30,9 @@ func (listview *ListView) ToJSON() []byte {
|
|||||||
}
|
}
|
||||||
return b
|
return b
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 直接輸出JSON給瀏覽器
|
||||||
|
func (listview *ListView) WriteJSON(w http.ResponseWriter) {
|
||||||
|
w.Header().Set("Content-Type", "application/json; charset=utf-8")
|
||||||
|
w.Write(listview.ToJSON())
|
||||||
|
}
|
||||||
|
@@ -12,7 +12,7 @@ type Tag struct {
|
|||||||
UpdatedAt string `json:"updated_at"`
|
UpdatedAt string `json:"updated_at"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (tag *Tag) Create() error {
|
func (tag *Tag) Create(name string) error {
|
||||||
db, err := configs.GetDB()
|
db, err := configs.GetDB()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
@@ -25,7 +25,7 @@ func (tag *Tag) Create() error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
defer stmt.Close()
|
defer stmt.Close()
|
||||||
result, err := stmt.Exec(tag.Name, tag.CreatedAt, tag.UpdatedAt)
|
result, err := stmt.Exec(name, tag.CreatedAt, tag.UpdatedAt)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
return err
|
return err
|
||||||
@@ -139,3 +139,44 @@ func GetTagByName(name string) (*Tag, error) {
|
|||||||
}
|
}
|
||||||
return &tag, nil
|
return &tag, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func QueryTags(page, pagesize int) (list []interface{}) {
|
||||||
|
db, err := configs.GetDB()
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
defer db.Close()
|
||||||
|
rows, err := db.Query("SELECT * FROM tags LIMIT ?, ?", page, pagesize)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
defer rows.Close()
|
||||||
|
for rows.Next() {
|
||||||
|
var tag Tag
|
||||||
|
err := rows.Scan(&tag.ID, &tag.Name, &tag.CreatedAt, &tag.UpdatedAt)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
list = append(list, tag)
|
||||||
|
}
|
||||||
|
return list
|
||||||
|
}
|
||||||
|
|
||||||
|
func CountTags() (count int) {
|
||||||
|
db, err := configs.GetDB()
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
defer db.Close()
|
||||||
|
row := db.QueryRow("SELECT COUNT(*) FROM tags")
|
||||||
|
err = row.Scan(&count)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
return count
|
||||||
|
}
|
||||||
|
@@ -18,8 +18,7 @@ func ImagesGet(w http.ResponseWriter, r *http.Request) {
|
|||||||
listview.List = models.QueryImages(listview.Page, listview.PageSize)
|
listview.List = models.QueryImages(listview.Page, listview.PageSize)
|
||||||
listview.Total = models.CountImages()
|
listview.Total = models.CountImages()
|
||||||
listview.Next = listview.Page*listview.PageSize < listview.Total
|
listview.Next = listview.Page*listview.PageSize < listview.Total
|
||||||
w.Header().Set("Content-Type", "application/json; charset=utf-8")
|
listview.WriteJSON(w)
|
||||||
w.Write(listview.ToJSON())
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func ImagesPost(w http.ResponseWriter, r *http.Request) {
|
func ImagesPost(w http.ResponseWriter, r *http.Request) {
|
||||||
|
@@ -22,8 +22,7 @@ func ModelsGet(w http.ResponseWriter, r *http.Request) {
|
|||||||
listview.List = models.QueryModels(listview.Page, listview.PageSize)
|
listview.List = models.QueryModels(listview.Page, listview.PageSize)
|
||||||
listview.Total = models.CountModels()
|
listview.Total = models.CountModels()
|
||||||
listview.Next = listview.Page*listview.PageSize < listview.Total
|
listview.Next = listview.Page*listview.PageSize < listview.Total
|
||||||
w.Header().Set("Content-Type", "application/json; charset=utf-8")
|
listview.WriteJSON(w)
|
||||||
w.Write(listview.ToJSON())
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func ModelsPost(w http.ResponseWriter, r *http.Request) {
|
func ModelsPost(w http.ResponseWriter, r *http.Request) {
|
||||||
|
@@ -15,8 +15,7 @@ func ServersGet(w http.ResponseWriter, r *http.Request) {
|
|||||||
listview.List = models.QueryServers(listview.Page, listview.PageSize)
|
listview.List = models.QueryServers(listview.Page, listview.PageSize)
|
||||||
listview.Total = models.CountServers()
|
listview.Total = models.CountServers()
|
||||||
listview.Next = listview.Page*listview.PageSize < listview.Total
|
listview.Next = listview.Page*listview.PageSize < listview.Total
|
||||||
w.Header().Set("Content-Type", "application/json; charset=utf-8")
|
listview.WriteJSON(w)
|
||||||
w.Write(listview.ToJSON())
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func ServersPost(w http.ResponseWriter, r *http.Request) {
|
func ServersPost(w http.ResponseWriter, r *http.Request) {
|
||||||
|
@@ -16,8 +16,7 @@ func SessionsGet(w http.ResponseWriter, r *http.Request) {
|
|||||||
listview.List = models.QuerySessions(listview.Page, listview.PageSize)
|
listview.List = models.QuerySessions(listview.Page, listview.PageSize)
|
||||||
listview.Total = models.CountSessions()
|
listview.Total = models.CountSessions()
|
||||||
listview.Next = listview.Page*listview.PageSize < listview.Total
|
listview.Next = listview.Page*listview.PageSize < listview.Total
|
||||||
w.Header().Set("Content-Type", "application/json; charset=utf-8")
|
listview.WriteJSON(w)
|
||||||
w.Write(listview.ToJSON())
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 創建會話
|
// 創建會話
|
||||||
|
51
routers/tags.go
Normal file
51
routers/tags.go
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
package routers
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"fmt"
|
||||||
|
"io/ioutil"
|
||||||
|
"main/models"
|
||||||
|
"main/utils"
|
||||||
|
"net/http"
|
||||||
|
)
|
||||||
|
|
||||||
|
// 獲取標籤列表
|
||||||
|
func TagsGet(w http.ResponseWriter, r *http.Request) {
|
||||||
|
var listview models.ListView
|
||||||
|
listview.Page = utils.ParamInt(r.URL.Query().Get("page"), 1)
|
||||||
|
listview.PageSize = utils.ParamInt(r.URL.Query().Get("pageSize"), 10)
|
||||||
|
listview.List = models.QueryTags(listview.Page, listview.PageSize)
|
||||||
|
listview.Total = models.CountTags()
|
||||||
|
listview.Next = listview.Page*listview.PageSize < listview.Total
|
||||||
|
listview.WriteJSON(w)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 創建標籤
|
||||||
|
func TagsPost(w http.ResponseWriter, r *http.Request) {
|
||||||
|
var form struct {
|
||||||
|
Name string `json:"name"`
|
||||||
|
}
|
||||||
|
body, err := ioutil.ReadAll(r.Body)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
defer r.Body.Close()
|
||||||
|
if err = json.Unmarshal(body, &form); err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// 創建標籤
|
||||||
|
var tag models.Tag
|
||||||
|
if err := tag.Create(form.Name); err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// 返回信息
|
||||||
|
w.Header().Set("Content-Type", "application/json; charset=utf-8")
|
||||||
|
w.Write(utils.ToJSON(tag))
|
||||||
|
}
|
||||||
|
|
||||||
|
// 獲取標籤
|
||||||
|
func TagsItemGet(w http.ResponseWriter, r *http.Request) {
|
||||||
|
}
|
@@ -20,8 +20,7 @@ func TasksGet(w http.ResponseWriter, r *http.Request) {
|
|||||||
listview.List = models.QueryTasks(listview.Page, listview.PageSize)
|
listview.List = models.QueryTasks(listview.Page, listview.PageSize)
|
||||||
listview.Total = models.CountTasks()
|
listview.Total = models.CountTasks()
|
||||||
listview.Next = listview.Page*listview.PageSize < listview.Total
|
listview.Next = listview.Page*listview.PageSize < listview.Total
|
||||||
w.Header().Set("Content-Type", "application/json; charset=utf-8")
|
listview.WriteJSON(w)
|
||||||
w.Write(listview.ToJSON())
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TasksPost(w http.ResponseWriter, r *http.Request) {
|
func TasksPost(w http.ResponseWriter, r *http.Request) {
|
||||||
|
@@ -19,8 +19,7 @@ func UsersGet(w http.ResponseWriter, r *http.Request) {
|
|||||||
listview.List = models.QueryUsers(listview.Page, listview.PageSize)
|
listview.List = models.QueryUsers(listview.Page, listview.PageSize)
|
||||||
listview.Total = models.CountUsers()
|
listview.Total = models.CountUsers()
|
||||||
listview.Next = listview.Page*listview.PageSize < listview.Total
|
listview.Next = listview.Page*listview.PageSize < listview.Total
|
||||||
w.Header().Set("Content-Type", "application/json; charset=utf-8")
|
listview.WriteJSON(w)
|
||||||
w.Write(listview.ToJSON())
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 創建用戶
|
// 創建用戶
|
||||||
|
Reference in New Issue
Block a user