block collection 에 account를 복수로 저장
This commit is contained in:
52
core/api.go
52
core/api.go
@ -161,18 +161,21 @@ func (caller apiCaller) uploadAPI(w http.ResponseWriter, r *http.Request) error
|
||||
func (caller apiCaller) blockAPI(w http.ResponseWriter, r *http.Request) error {
|
||||
mg := caller.mg
|
||||
logger.Println("blockAPI :", r.Method)
|
||||
if r.Method == "GET" {
|
||||
switch r.Method {
|
||||
case "GET":
|
||||
target, ok := gocommon.ReadObjectIDFormValue(r.Form, "accid")
|
||||
logger.Println("Get :", target, ok)
|
||||
if !ok {
|
||||
// 페이지네이션 해야할 듯
|
||||
json.NewEncoder(w).Encode(mg.bl.all())
|
||||
//json.NewEncoder(w).Encode(mg.bl.all())
|
||||
} else if !target.IsZero() {
|
||||
if blocked, ok := mg.bl.get(target); ok && blocked != nil {
|
||||
var blocked []blockinfo
|
||||
if err := caller.mg.mongoClient.FindAllAs(CollectionBlock, bson.M{
|
||||
"accid": target,
|
||||
}, &blocked); err == nil {
|
||||
json.NewEncoder(w).Encode(blocked)
|
||||
}
|
||||
}
|
||||
} else if r.Method == "PUT" {
|
||||
case "PUT":
|
||||
var targets struct {
|
||||
Start primitive.DateTime
|
||||
End primitive.DateTime
|
||||
@ -189,22 +192,15 @@ func (caller apiCaller) blockAPI(w http.ResponseWriter, r *http.Request) error {
|
||||
Meta: meta,
|
||||
}
|
||||
|
||||
_, _, err := mg.mongoClient.Update(CollectionBlock, bson.M{
|
||||
"_id": accid,
|
||||
}, bson.M{
|
||||
"$set": &bi,
|
||||
}, options.Update().SetUpsert(true))
|
||||
_, err := mg.mongoClient.Collection(CollectionBlock).InsertOne(r.Context(), bi)
|
||||
if err != nil {
|
||||
logger.Println("account is not blocked. err :", err)
|
||||
} else {
|
||||
logger.Println("account is blocked :", meta)
|
||||
|
||||
bi.Accid = accid
|
||||
caller.mg.bl.add(&bi)
|
||||
mg.sessionProvider.RevokeAll(accid)
|
||||
}
|
||||
}
|
||||
} else if r.Method == "DELETE" {
|
||||
case "DELETE":
|
||||
id := r.URL.Query().Get("id")
|
||||
|
||||
if len(id) == 0 {
|
||||
@ -215,29 +211,21 @@ func (caller apiCaller) blockAPI(w http.ResponseWriter, r *http.Request) error {
|
||||
return err
|
||||
}
|
||||
|
||||
_, _, err = mg.mongoClient.Update(CollectionBlock, bson.M{
|
||||
"_id": idobj,
|
||||
}, bson.M{
|
||||
"$currentDate": bson.M{
|
||||
"_ts": bson.M{"$type": "date"},
|
||||
},
|
||||
}, options.Update().SetUpsert(false))
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
caller.mg.bl.remove(idobj)
|
||||
mg.mongoClient.Delete(CollectionBlock, bson.M{"_id": idobj})
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (caller apiCaller) whitelistAPI(w http.ResponseWriter, r *http.Request) error {
|
||||
mg := caller.mg
|
||||
if r.Method == "GET" {
|
||||
enc := json.NewEncoder(w)
|
||||
enc.Encode(mg.wl.all())
|
||||
} else if r.Method == "PUT" {
|
||||
switch r.Method {
|
||||
case "GET":
|
||||
var all []whitelistmember
|
||||
if err := mg.mongoClient.AllAs(CollectionWhitelist, &all); err == nil {
|
||||
enc := json.NewEncoder(w)
|
||||
enc.Encode(all)
|
||||
}
|
||||
case "PUT":
|
||||
body, _ := io.ReadAll(r.Body)
|
||||
var member whitelistmember
|
||||
if err := json.Unmarshal(body, &member); err != nil {
|
||||
@ -254,7 +242,7 @@ func (caller apiCaller) whitelistAPI(w http.ResponseWriter, r *http.Request) err
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
} else if r.Method == "DELETE" {
|
||||
case "DELETE":
|
||||
id := r.URL.Query().Get("id")
|
||||
|
||||
if len(id) == 0 {
|
||||
|
||||
Reference in New Issue
Block a user