add: cdr api package
This commit is contained in:
59
features/cdr/cdrevent.go
Normal file
59
features/cdr/cdrevent.go
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
package cdr
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"io"
|
||||||
|
"net/http"
|
||||||
|
|
||||||
|
"ems.agt/lib/dborm"
|
||||||
|
"ems.agt/lib/global"
|
||||||
|
"ems.agt/lib/log"
|
||||||
|
"ems.agt/lib/services"
|
||||||
|
"ems.agt/restagent/config"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
UriCDREvent = config.DefaultUriPrefix + "/cdrManagement/v1/elementType/{elementTypeValue}/objectType/cdrEvent"
|
||||||
|
UriCDRFile = config.DefaultUriPrefix + "/cdrManagement/v1/elementType/{elementTypeValue}/objectType/cdrFile"
|
||||||
|
|
||||||
|
CustomUriCDREvent = config.UriPrefix + "/cdrManagement/v1/elementType/{elementTypeValue}/objectType/cdrEvent"
|
||||||
|
CustomUriCDRFile = config.UriPrefix + "/cdrManagement/v1/elementType/{elementTypeValue}/objectType/cdrFile"
|
||||||
|
)
|
||||||
|
|
||||||
|
type CDREvent struct {
|
||||||
|
NeType string `json:"neType" xorm:"ne_type"`
|
||||||
|
NeName string `json:"neName" xorm:"ne_name"`
|
||||||
|
RmUID string `json:"rmUID" xorm:"rm_uid"`
|
||||||
|
Timestamp int `json:"timestamp" xorm:"timestamp"`
|
||||||
|
CDR map[string]any `json:"CDR" xorm:"cdr_json"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func PostCDREventFromNF(w http.ResponseWriter, r *http.Request) {
|
||||||
|
log.Info("PostCDREventFromNF processing... ")
|
||||||
|
|
||||||
|
// body, err := io.ReadAll(io.LimitReader(r.Body, global.RequestBodyMaxLen))
|
||||||
|
body, err := io.ReadAll(io.LimitReader(r.Body, global.RequestBodyMaxLen))
|
||||||
|
if err != nil {
|
||||||
|
log.Error("Faile to io.ReadAll: ", err)
|
||||||
|
services.ResponseNotFound404UriNotExist(w, r)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
cdrEvent := new(CDREvent)
|
||||||
|
err = json.Unmarshal(body, &cdrEvent)
|
||||||
|
if err != nil {
|
||||||
|
log.Error("Failed to Unmarshal cdrEvent:", err)
|
||||||
|
services.ResponseInternalServerError500ProcessError(w, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
log.Trace("cdrEvent:", cdrEvent)
|
||||||
|
|
||||||
|
affected, err := dborm.XormInsertTableOne("cdr_event", cdrEvent)
|
||||||
|
if err != nil && affected <= 0 {
|
||||||
|
log.Error("Failed to insert cdr_event:", err)
|
||||||
|
services.ResponseInternalServerError500ProcessError(w, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
services.ResponseStatusOK204NoContent(w)
|
||||||
|
}
|
||||||
@@ -172,7 +172,7 @@ func PostKPIReportFromNF(w http.ResponseWriter, r *http.Request) {
|
|||||||
log.Trace("Request body:", string(body))
|
log.Trace("Request body:", string(body))
|
||||||
kpiReport := new(KpiReport)
|
kpiReport := new(KpiReport)
|
||||||
_ = json.Unmarshal(body, &kpiReport)
|
_ = json.Unmarshal(body, &kpiReport)
|
||||||
log.Debug("kpiReport:", kpiReport)
|
log.Trace("kpiReport:", kpiReport)
|
||||||
|
|
||||||
session := xEngine.NewSession()
|
session := xEngine.NewSession()
|
||||||
defer session.Close()
|
defer session.Close()
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import (
|
|||||||
// "log"
|
// "log"
|
||||||
|
|
||||||
"ems.agt/features/aaaa"
|
"ems.agt/features/aaaa"
|
||||||
|
"ems.agt/features/cdr"
|
||||||
"ems.agt/features/cm"
|
"ems.agt/features/cm"
|
||||||
"ems.agt/features/dbrest"
|
"ems.agt/features/dbrest"
|
||||||
"ems.agt/features/file"
|
"ems.agt/features/file"
|
||||||
@@ -299,6 +300,9 @@ func init() {
|
|||||||
Register("GET", ue.UriNSSFSubscriptions, ue.GetSubscriptionsFromNSSF, nil)
|
Register("GET", ue.UriNSSFSubscriptions, ue.GetSubscriptionsFromNSSF, nil)
|
||||||
Register("GET", ue.CustomUriNSSFSubscriptions, ue.GetSubscriptionsFromNSSF, nil)
|
Register("GET", ue.CustomUriNSSFSubscriptions, ue.GetSubscriptionsFromNSSF, nil)
|
||||||
|
|
||||||
|
Register("POST", cdr.UriCDREvent, cdr.PostCDREventFromNF, nil)
|
||||||
|
Register("POST", cdr.CustomUriCDREvent, cdr.PostCDREventFromNF, nil)
|
||||||
|
|
||||||
// 进程网络
|
// 进程网络
|
||||||
Register("GET", psnet.UriWs, psnet.ProcessWs, nil)
|
Register("GET", psnet.UriWs, psnet.ProcessWs, nil)
|
||||||
Register("POST", psnet.UriStop, psnet.StopProcess, nil)
|
Register("POST", psnet.UriStop, psnet.StopProcess, nil)
|
||||||
|
|||||||
Reference in New Issue
Block a user