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