add new API to fetch cookie data

This commit is contained in:
Yuli
2020-07-12 19:14:42 +03:00
parent dc8b52102b
commit a28ee712a8
2 changed files with 43 additions and 0 deletions

View File

@@ -157,6 +157,19 @@ func (e mainEnv) configurationDump(w http.ResponseWriter, r *http.Request, ps ht
w.Write([]byte(finalJSON))
}
func (e mainEnv) cookieSettings(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
resultJSON, _, err := e.db.getLegalBasisCookieConf()
if err != nil {
returnError(w, r, "internal error", 405, err, nil)
return
}
resultUIConfJSON, _ := json.Marshal(e.conf.UI)
finalJSON := fmt.Sprintf(`{"status":"ok","ui":%s,"rows":%s}`, resultUIConfJSON, resultJSON)
w.Header().Set("Content-Type", "application/json; charset=utf-8")
w.WriteHeader(200)
w.Write([]byte(finalJSON))
}
// UI configuration dump API call.
func (e mainEnv) uiConfigurationDump(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
if len(e.conf.Notification.MagicSyncURL) != 0 &&
@@ -190,6 +203,7 @@ func (e mainEnv) setupRouter() *httprouter.Router {
router.GET("/v1/sys/backup", e.backupDB)
router.GET("/v1/sys/configuration", e.configurationDump)
router.GET("/v1/sys/uiconfiguration", e.uiConfigurationDump)
router.GET("/v1/sys/cookiesettings", e.cookieSettings)
router.POST("/v1/user", e.userNew)
router.GET("/v1/user/:mode/:address", e.userGet)

View File

@@ -96,6 +96,35 @@ func (dbobj dbcon) revokeLegalBasis(brief string) (bool, error) {
return true, nil
}
func (dbobj dbcon) getLegalBasisCookieConf() ([]byte, int, error) {
records, err := dbobj.store.GetList(storage.TblName.Legalbasis, "status", "active", 0,0, "required")
if err != nil {
return nil, 0, err
}
count := len(records)
if count == 0 {
return []byte("[]"), 0, err
}
count = 0
var results []bson.M
for _, element := range records {
if _, ok := element["module"]; ok {
if element["module"].(string) == "cookie-popup" {
results = append(results, element)
count = count + 1
}
}
}
if count == 0 {
return []byte("[]"), 0, err
}
resultJSON, err := json.Marshal(results)
if err != nil {
return nil, 0, err
}
return resultJSON, count, nil
}
func (dbobj dbcon) getLegalBasisRecords() ([]byte, int, error) {
records, err := dbobj.store.GetList0(storage.TblName.Legalbasis, 0, 0, "")
if err != nil {