166 lines
3.8 KiB
Go
166 lines
3.8 KiB
Go
package udmuser
|
|
|
|
import (
|
|
"fmt"
|
|
"net/http"
|
|
|
|
"ems.agt/features/udm_user/service"
|
|
mmlclient "ems.agt/lib/core/mml_client"
|
|
"ems.agt/lib/core/utils/ctx"
|
|
"ems.agt/lib/core/vo/result"
|
|
"ems.agt/lib/dborm"
|
|
"ems.agt/lib/log"
|
|
"ems.agt/lib/services"
|
|
"ems.agt/restagent/config"
|
|
)
|
|
|
|
// UDM 用户信息接口添加到路由
|
|
func Routers() []services.RouterItem {
|
|
// 实例化控制层 SysDictTypeApi 结构体
|
|
var apis = &UdmUserApi{
|
|
authUser: *service.NewServiceUdmAuthUser,
|
|
subUser: *service.NewServiceUdmSubUser,
|
|
}
|
|
|
|
rs := [...]services.RouterItem{
|
|
{
|
|
Method: "GET",
|
|
Pattern: "/auths",
|
|
Handler: apis.UdmAuthUserList,
|
|
Middleware: nil, //midware.Authorize(nil),
|
|
},
|
|
{
|
|
Method: "POST",
|
|
Pattern: "/auth/getSave",
|
|
Handler: apis.UdmAuthUserSave,
|
|
Middleware: nil, //midware.Authorize(nil),
|
|
},
|
|
{
|
|
Method: "GET",
|
|
Pattern: "/auth/{neId}/{imsi}",
|
|
Handler: apis.UdmAuthUserInfo,
|
|
Middleware: nil, //midware.Authorize(nil),
|
|
},
|
|
{
|
|
Method: "POST",
|
|
Pattern: "/auth",
|
|
Handler: apis.UdmAuthUserAdd,
|
|
Middleware: nil, //midware.Authorize(nil),
|
|
},
|
|
{
|
|
Method: "GET",
|
|
Pattern: "/subs",
|
|
Handler: apis.UdmSubUserList,
|
|
Middleware: nil, //midware.Authorize(nil),
|
|
},
|
|
{
|
|
Method: "POST",
|
|
Pattern: "/sub/getSave",
|
|
Handler: apis.UdmSubUserSave,
|
|
Middleware: nil, //midware.Authorize(nil),
|
|
},
|
|
// 添加更多的 Router 对象...
|
|
}
|
|
|
|
// 生成两组前缀路由
|
|
rsPrefix := []services.RouterItem{}
|
|
for _, v := range rs {
|
|
path := "/udmUserManage/{apiVersion}" + v.Pattern
|
|
// 固定前缀
|
|
v.Pattern = config.DefaultUriPrefix + path
|
|
rsPrefix = append(rsPrefix, v)
|
|
// 可配置
|
|
v.Pattern = config.UriPrefix + path
|
|
rsPrefix = append(rsPrefix, v)
|
|
}
|
|
return rsPrefix
|
|
}
|
|
|
|
// NeInfoByUDM 网元信息
|
|
func NeInfoByUDM(neId string) (*dborm.NeInfo, error) {
|
|
neInfo, err := dborm.XormGetNeInfo("UDM", neId)
|
|
if err != nil {
|
|
log.Error("dborm.XormGetNeInfo is failed:", err)
|
|
return nil, err
|
|
}
|
|
return neInfo, nil
|
|
}
|
|
|
|
// UDM 用户
|
|
//
|
|
// PATH /udmUserManage
|
|
type UdmUserApi struct {
|
|
authUser service.ServiceUdmAuthUser
|
|
subUser service.ServiceUdmSubUser
|
|
}
|
|
|
|
// UDM鉴权用户
|
|
//
|
|
// GET /auths
|
|
func (s *UdmUserApi) UdmAuthUserList(w http.ResponseWriter, r *http.Request) {
|
|
querys := ctx.QueryMap(r)
|
|
data := s.authUser.AuthUserList(querys)
|
|
ctx.JSON(w, 200, result.Ok(data))
|
|
}
|
|
|
|
// UDM鉴权用户-获取全部保存数据库
|
|
//
|
|
// POST /auth/getSave
|
|
func (s *UdmUserApi) UdmAuthUserSave(w http.ResponseWriter, r *http.Request) {
|
|
data := s.authUser.AuthUserSave("")
|
|
ctx.JSON(w, 200, result.OkData(data))
|
|
}
|
|
|
|
// UDM鉴权用户-信息
|
|
//
|
|
// GET /{neId}/{imsi}
|
|
func (s *UdmUserApi) UdmAuthUserInfo(w http.ResponseWriter, r *http.Request) {
|
|
neId := ctx.Param(r, "neId")
|
|
imsi := ctx.Param(r, "imsi")
|
|
if neId == "" || imsi == "" {
|
|
ctx.JSON(w, 400, result.CodeMsg(400, "参数错误"))
|
|
return
|
|
}
|
|
|
|
neInfo, err := NeInfoByUDM(neId)
|
|
if err != nil {
|
|
ctx.JSON(w, 200, result.ErrMsg(err.Error()))
|
|
return
|
|
}
|
|
|
|
msg := fmt.Sprintf("dsp authdat:imsi=%s", imsi)
|
|
|
|
// 发送MML
|
|
data, err := mmlclient.MMLSendMsgToMap(neInfo.Ip, msg)
|
|
if err != nil {
|
|
ctx.JSON(w, 200, result.ErrMsg(err.Error()))
|
|
return
|
|
}
|
|
ctx.JSON(w, 200, result.OkData(data))
|
|
}
|
|
|
|
// UDM鉴权用户-新增
|
|
//
|
|
// POST /auth
|
|
func (s *UdmUserApi) UdmAuthUserAdd(w http.ResponseWriter, r *http.Request) {
|
|
data := s.authUser.AuthUserSave("")
|
|
ctx.JSON(w, 200, result.OkData(data))
|
|
}
|
|
|
|
// UDM签约用户
|
|
//
|
|
// GET /subs
|
|
func (s *UdmUserApi) UdmSubUserList(w http.ResponseWriter, r *http.Request) {
|
|
querys := ctx.QueryMap(r)
|
|
data := s.subUser.SubUserList(querys)
|
|
ctx.JSON(w, 200, result.Ok(data))
|
|
}
|
|
|
|
// UDM签约用户-获取全部保存数据库
|
|
//
|
|
// POST /sub/getSave
|
|
func (s *UdmUserApi) UdmSubUserSave(w http.ResponseWriter, r *http.Request) {
|
|
data := s.subUser.SubUserSave("")
|
|
ctx.JSON(w, 200, result.OkData(data))
|
|
}
|