go-common/app/admin/main/dm/http/task.go
2019-04-22 18:49:16 +08:00

102 lines
2.0 KiB
Go

package http
import (
"fmt"
"net"
"net/http"
"strings"
"go-common/app/admin/main/dm/model"
"go-common/library/ecode"
bm "go-common/library/net/http/blademaster"
"go-common/library/xstr"
)
func taskList(c *bm.Context) {
v := new(model.TaskListArg)
if err := c.Bind(v); err != nil {
return
}
c.JSON(dmSvc.TaskList(c, v))
}
func addTask(c *bm.Context) {
var (
uname, _ = c.Get("username")
v = new(model.AddTaskArg)
err error
)
if err = c.Bind(v); err != nil {
return
}
if v.Regex == "" && v.Mids == "" && v.IPs == "" && v.Cids == "" && v.KeyWords == "" {
c.JSON(nil, ecode.RequestErr)
return
}
if _, err = xstr.SplitInts(v.Mids); err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
if _, err = xstr.SplitInts(v.Cids); err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
if v.IPs != "" {
ips := strings.Split(v.IPs, ",")
for _, ip := range ips {
tmp := net.ParseIP(ip)
if tmp == nil {
c.JSON(nil, ecode.RequestErr)
return
}
}
}
v.Creator = uname.(string)
c.JSON(nil, dmSvc.AddTask(c, v))
}
func editTaskState(c *bm.Context) {
v := new(model.EditTasksStateArg)
if err := c.Bind(v); err != nil {
return
}
c.JSON(nil, dmSvc.EditTaskState(c, v))
}
func reviewTask(c *bm.Context) {
var (
reviewer, _ = c.Get("username")
v = new(model.ReviewTaskArg)
)
if err := c.Bind(v); err != nil {
return
}
v.Reviewer = reviewer.(string)
c.JSON(nil, dmSvc.ReviewTask(c, v))
}
func taskView(c *bm.Context) {
v := new(model.TaskViewArg)
if err := c.Bind(v); err != nil {
return
}
c.JSON(dmSvc.TaskView(c, v))
}
func taskCsv(c *bm.Context) {
var (
bs []byte
err error
contentType = "text/csv"
)
v := new(model.TaskCsvArg)
if err = c.Bind(v); err != nil {
return
}
if bs, err = dmSvc.TaskCsv(c, v.ID); err != nil {
c.JSON(nil, err)
return
}
c.Writer.Header().Set("Content-Disposition", fmt.Sprintf("attachment;filename=%v.csv", v.ID))
c.Bytes(http.StatusOK, contentType, bs)
}