Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
rudern
物联大师
提交
355b9cd9
物
物联大师
项目概览
rudern
/
物联大师
通知
4
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
物
物联大师
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
355b9cd9
编写于
11月 01, 2020
作者:
J
Jason
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
添加before钩子,用于生成UUID,变量检查等
上级
4c451cec
变更
4
显示空白变更内容
内联
并排
Showing
4 changed file
with
39 addition
and
27 deletion
+39
-27
web/api/curd.go
web/api/curd.go
+3
-3
web/api/element.go
web/api/element.go
+11
-4
web/api/project.go
web/api/project.go
+8
-2
web/api/router.go
web/api/router.go
+17
-18
未找到文件。
web/api/curd.go
浏览文件 @
355b9cd9
...
...
@@ -179,7 +179,7 @@ func curdApiListById(model string, mod reflect.Type, field string) Handler {
}
}
func
curdApiCreate
(
model
string
,
mod
reflect
.
Type
,
after
hook
)
Handler
{
func
curdApiCreate
(
model
string
,
mod
reflect
.
Type
,
before
hook
,
after
hook
)
Handler
{
return
func
(
writer
http
.
ResponseWriter
,
request
*
http
.
Request
)
{
data
:=
reflect
.
New
(
mod
)
.
Interface
()
if
err
:=
parseBody
(
request
,
data
);
err
!=
nil
{
...
...
@@ -205,7 +205,7 @@ func curdApiCreate(model string, mod reflect.Type, after hook) Handler {
}
}
func
curdApiModify
(
model
string
,
mod
reflect
.
Type
,
after
hook
)
Handler
{
func
curdApiModify
(
model
string
,
mod
reflect
.
Type
,
before
hook
,
after
hook
)
Handler
{
return
func
(
writer
http
.
ResponseWriter
,
request
*
http
.
Request
)
{
id
,
err
:=
strconv
.
Atoi
(
mux
.
Vars
(
request
)[
"id"
])
if
err
!=
nil
{
...
...
@@ -240,7 +240,7 @@ func curdApiModify(model string, mod reflect.Type, after hook) Handler {
}
}
func
curdApiDelete
(
model
string
,
mod
reflect
.
Type
,
after
hook
)
Handler
{
func
curdApiDelete
(
model
string
,
mod
reflect
.
Type
,
before
hook
,
after
hook
)
Handler
{
return
func
(
writer
http
.
ResponseWriter
,
request
*
http
.
Request
)
{
id
,
err
:=
strconv
.
Atoi
(
mux
.
Vars
(
request
)[
"id"
])
if
err
!=
nil
{
...
...
web/api/element.go
浏览文件 @
355b9cd9
package
api
import
(
"git.zgwit.com/zgwit/iot-admin/
db
"
"git.zgwit.com/zgwit/iot-admin/
models
"
"github.com/google/uuid"
)
func
elementAfterCreated
(
data
interface
{})
error
{
//element := data.(*models.Element)
return
db
.
DB
(
"element"
)
.
UpdateField
(
data
,
"UUID"
,
uuid
.
New
()
.
String
())
func
elementBeforeCreate
(
data
interface
{})
error
{
element
:=
data
.
(
*
models
.
Element
)
element
.
UUID
=
uuid
.
New
()
.
String
()
return
nil
}
func
elementBeforeDelete
(
data
interface
{})
error
{
//TODO 检查是否被引用
return
nil
}
web/api/project.go
浏览文件 @
355b9cd9
package
api
import
(
"git.zgwit.com/zgwit/iot-admin/
db
"
"git.zgwit.com/zgwit/iot-admin/
models
"
"github.com/google/uuid"
"net/http"
)
func
projectBeforeCreate
(
data
interface
{})
error
{
project
:=
data
.
(
*
models
.
Project
)
project
.
UUID
=
uuid
.
New
()
.
String
()
return
nil
}
func
projectAfterCreate
(
data
interface
{})
error
{
//project := data.(*models.Project)
return
db
.
DB
(
"project"
)
.
UpdateField
(
data
,
"UUID"
,
uuid
.
New
()
.
String
())
//TODO 加载实例
return
nil
}
func
projectAfterModify
(
data
interface
{})
error
{
...
...
web/api/router.go
浏览文件 @
355b9cd9
...
...
@@ -76,9 +76,9 @@ func RegisterRoutes(app *mux.Router) {
model
:=
"tunnel"
app
.
HandleFunc
(
"/project/{id}/tunnels"
,
curdApiListById
(
model
,
mod
,
"project_id"
))
.
Methods
(
"POST"
)
app
.
HandleFunc
(
"/tunnels"
,
curdApiList
(
model
,
mod
))
.
Methods
(
"POST"
)
app
.
HandleFunc
(
"/tunnel"
,
curdApiCreate
(
model
,
mod
,
nil
))
.
Methods
(
"POST"
)
//TODO 启动
app
.
HandleFunc
(
"/tunnel/{id}"
,
curdApiDelete
(
model
,
mod
,
nil
))
.
Methods
(
"DELETE"
)
//TODO 停止
app
.
HandleFunc
(
"/tunnel/{id}"
,
curdApiModify
(
model
,
mod
,
nil
))
.
Methods
(
"PUT"
,
"POST"
)
//TODO 重新启动
app
.
HandleFunc
(
"/tunnel"
,
curdApiCreate
(
model
,
mod
,
nil
,
nil
))
.
Methods
(
"POST"
)
//TODO 启动
app
.
HandleFunc
(
"/tunnel/{id}"
,
curdApiDelete
(
model
,
mod
,
nil
,
nil
))
.
Methods
(
"DELETE"
)
//TODO 停止
app
.
HandleFunc
(
"/tunnel/{id}"
,
curdApiModify
(
model
,
mod
,
nil
,
nil
))
.
Methods
(
"PUT"
,
"POST"
)
//TODO 重新启动
app
.
HandleFunc
(
"/tunnel/{id}"
,
curdApiGet
(
model
,
mod
))
.
Methods
(
"GET"
)
app
.
HandleFunc
(
"/tunnel/{id}/start"
,
tunnelStart
)
.
Methods
(
"GET"
)
...
...
@@ -91,26 +91,26 @@ func RegisterRoutes(app *mux.Router) {
model
=
"link"
app
.
HandleFunc
(
"/tunnel/{id}/links"
,
curdApiListById
(
model
,
mod
,
"tunnel_id"
))
.
Methods
(
"POST"
)
app
.
HandleFunc
(
"/links"
,
curdApiList
(
model
,
mod
))
.
Methods
(
"POST"
)
app
.
HandleFunc
(
"/link/{id}"
,
curdApiDelete
(
model
,
mod
,
nil
))
.
Methods
(
"DELETE"
)
//TODO 停止
app
.
HandleFunc
(
"/link/{id}"
,
curdApiModify
(
model
,
mod
,
nil
))
.
Methods
(
"PUT"
,
"POST"
)
app
.
HandleFunc
(
"/link/{id}"
,
curdApiDelete
(
model
,
mod
,
nil
,
nil
))
.
Methods
(
"DELETE"
)
//TODO 停止
app
.
HandleFunc
(
"/link/{id}"
,
curdApiModify
(
model
,
mod
,
nil
,
nil
))
.
Methods
(
"PUT"
,
"POST"
)
app
.
HandleFunc
(
"/link/{id}"
,
curdApiGet
(
model
,
mod
))
.
Methods
(
"GET"
)
//插件管理
mod
=
reflect
.
TypeOf
(
models
.
Plugin
{})
model
=
"plugin"
app
.
HandleFunc
(
"/plugins"
,
curdApiList
(
model
,
mod
))
.
Methods
(
"POST"
)
app
.
HandleFunc
(
"/plugin"
,
curdApiCreate
(
model
,
mod
,
nil
))
.
Methods
(
"POST"
)
app
.
HandleFunc
(
"/plugin/{id}"
,
curdApiDelete
(
model
,
mod
,
nil
))
.
Methods
(
"DELETE"
)
app
.
HandleFunc
(
"/plugin/{id}"
,
curdApiModify
(
model
,
mod
,
nil
))
.
Methods
(
"PUT"
,
"POST"
)
app
.
HandleFunc
(
"/plugin"
,
curdApiCreate
(
model
,
mod
,
nil
,
nil
))
.
Methods
(
"POST"
)
app
.
HandleFunc
(
"/plugin/{id}"
,
curdApiDelete
(
model
,
mod
,
nil
,
nil
))
.
Methods
(
"DELETE"
)
app
.
HandleFunc
(
"/plugin/{id}"
,
curdApiModify
(
model
,
mod
,
nil
,
nil
))
.
Methods
(
"PUT"
,
"POST"
)
app
.
HandleFunc
(
"/plugin/{id}"
,
curdApiGet
(
model
,
mod
))
.
Methods
(
"GET"
)
//项目管理
mod
=
reflect
.
TypeOf
(
models
.
Project
{})
model
=
"project"
app
.
HandleFunc
(
"/projects"
,
curdApiList
(
model
,
mod
))
.
Methods
(
"POST"
)
app
.
HandleFunc
(
"/project"
,
curdApiCreate
(
model
,
mod
,
projectAfterCreate
))
.
Methods
(
"POST"
)
app
.
HandleFunc
(
"/project/{id}"
,
curdApiDelete
(
model
,
mod
,
projectAfterDelete
))
.
Methods
(
"DELETE"
)
app
.
HandleFunc
(
"/project/{id}"
,
curdApiModify
(
model
,
mod
,
projectAfterModify
))
.
Methods
(
"PUT"
,
"POST"
)
app
.
HandleFunc
(
"/project"
,
curdApiCreate
(
model
,
mod
,
project
BeforeCreate
,
project
AfterCreate
))
.
Methods
(
"POST"
)
app
.
HandleFunc
(
"/project/{id}"
,
curdApiDelete
(
model
,
mod
,
nil
,
projectAfterDelete
))
.
Methods
(
"DELETE"
)
app
.
HandleFunc
(
"/project/{id}"
,
curdApiModify
(
model
,
mod
,
nil
,
projectAfterModify
))
.
Methods
(
"PUT"
,
"POST"
)
app
.
HandleFunc
(
"/project/{id}"
,
curdApiGet
(
model
,
mod
))
.
Methods
(
"GET"
)
//app.HandleFunc("/project/import", projectImport).Methods("POST")
...
...
@@ -122,20 +122,19 @@ func RegisterRoutes(app *mux.Router) {
mod
=
reflect
.
TypeOf
(
models
.
ProjectTemplate
{})
model
=
"template"
app
.
HandleFunc
(
"/templates"
,
curdApiList
(
model
,
mod
))
.
Methods
(
"POST"
)
app
.
HandleFunc
(
"/template"
,
curdApiCreate
(
model
,
mod
,
nil
))
.
Methods
(
"POST"
)
app
.
HandleFunc
(
"/template/{id}"
,
curdApiDelete
(
model
,
mod
,
nil
))
.
Methods
(
"DELETE"
)
app
.
HandleFunc
(
"/template/{id}"
,
curdApiModify
(
model
,
mod
,
nil
))
.
Methods
(
"PUT"
,
"POST"
)
app
.
HandleFunc
(
"/template"
,
curdApiCreate
(
model
,
mod
,
nil
,
nil
))
.
Methods
(
"POST"
)
app
.
HandleFunc
(
"/template/{id}"
,
curdApiDelete
(
model
,
mod
,
nil
,
nil
))
.
Methods
(
"DELETE"
)
app
.
HandleFunc
(
"/template/{id}"
,
curdApiModify
(
model
,
mod
,
nil
,
nil
))
.
Methods
(
"PUT"
,
"POST"
)
app
.
HandleFunc
(
"/template/{id}"
,
curdApiGet
(
model
,
mod
))
.
Methods
(
"GET"
)
//元件管理
mod
=
reflect
.
TypeOf
(
models
.
Element
{})
model
=
"element"
app
.
HandleFunc
(
"/elements"
,
curdApiList
(
model
,
mod
))
.
Methods
(
"POST"
)
app
.
HandleFunc
(
"/element"
,
curdApiCreate
(
model
,
mod
,
element
AfterCreated
))
.
Methods
(
"POST"
)
app
.
HandleFunc
(
"/element/{id}"
,
curdApiDelete
(
model
,
mod
,
nil
))
.
Methods
(
"DELETE"
)
app
.
HandleFunc
(
"/element/{id}"
,
curdApiModify
(
model
,
mod
,
nil
))
.
Methods
(
"PUT"
,
"POST"
)
app
.
HandleFunc
(
"/element"
,
curdApiCreate
(
model
,
mod
,
element
BeforeCreate
,
nil
))
.
Methods
(
"POST"
)
app
.
HandleFunc
(
"/element/{id}"
,
curdApiDelete
(
model
,
mod
,
elementBeforeDelete
,
nil
))
.
Methods
(
"DELETE"
)
app
.
HandleFunc
(
"/element/{id}"
,
curdApiModify
(
model
,
mod
,
nil
,
nil
))
.
Methods
(
"PUT"
,
"POST"
)
app
.
HandleFunc
(
"/element/{id}"
,
curdApiGet
(
model
,
mod
))
.
Methods
(
"GET"
)
}
type
Reply
struct
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录