|
@@ -29,25 +29,28 @@ func (w *Whitelist) Add(req entity.WhitelistAddReq) *code.Result {
|
|
collection := mdb.MDB.Collection(whitelistModel.TableName())
|
|
collection := mdb.MDB.Collection(whitelistModel.TableName())
|
|
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
|
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
|
defer cancel()
|
|
defer cancel()
|
|
-
|
|
|
|
// 判断是否已经存在
|
|
// 判断是否已经存在
|
|
err := collection.FindOne(ctx, bson.M{"ip": req.IP}).Decode(&whitelistModel)
|
|
err := collection.FindOne(ctx, bson.M{"ip": req.IP}).Decode(&whitelistModel)
|
|
- if err != nil && !errors.Is(err, mongo.ErrNoDocuments) {
|
|
|
|
- mhayaLogger.Warnf("Add InsertOne error:%v", err)
|
|
|
|
- return common.NewResult(code.InternalError)
|
|
|
|
|
|
+ if err == nil {
|
|
|
|
+ mhayaLogger.Warnf("IP %s already exists in the whitelist", req.IP)
|
|
|
|
+ return nil
|
|
}
|
|
}
|
|
|
|
|
|
- if errors.Is(err, mongo.ErrNoDocuments) {
|
|
|
|
- _, err = collection.InsertOne(ctx, bson.M{
|
|
|
|
- "ip": req.IP,
|
|
|
|
- "created_at": time.Now().Unix(),
|
|
|
|
- "updated_at": time.Now().Unix(),
|
|
|
|
- "desc": req.Desc,
|
|
|
|
- })
|
|
|
|
- if err != nil {
|
|
|
|
- mhayaLogger.Warnf("Add InsertOne error:%v", err)
|
|
|
|
- return common.NewResult(code.InternalError)
|
|
|
|
|
|
+ _, err = collection.InsertOne(ctx, bson.M{
|
|
|
|
+ "ip": req.IP,
|
|
|
|
+ "created_at": time.Now().Unix(),
|
|
|
|
+ "updated_at": time.Now().Unix(),
|
|
|
|
+ "desc": req.Desc,
|
|
|
|
+ })
|
|
|
|
+ if err != nil {
|
|
|
|
+ mhayaLogger.Warnf("Add inserting IP %s into whitelist error: %v", req.IP, err)
|
|
|
|
+ if errors.Is(err, mongo.ErrNoDocuments) {
|
|
|
|
+ mhayaLogger.Warnf("IP %s already exists in the whitelist", req.IP)
|
|
|
|
+ return nil
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ mhayaLogger.Warnf("Add InsertOne error:%v", err)
|
|
|
|
+ return common.NewResult(code.InternalError)
|
|
}
|
|
}
|
|
|
|
|
|
return nil
|
|
return nil
|