add notgroup function
This commit is contained in:
parent
083278deb0
commit
11c3592164
2 changed files with 47 additions and 0 deletions
|
@ -103,3 +103,29 @@ func GetGroupsUser(c *fiber.Ctx) error {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
// @Summary Renvoie la liste des groupes où ne se trouve pas un utilisateur
|
||||
// @Produce json
|
||||
// @Success 200 {array} models.Group "Liste des ids des groupes"
|
||||
// @Failure 403
|
||||
// @Failure 404
|
||||
// @Failure 500
|
||||
// @Router /users/{id}/not/groups [get]
|
||||
func GetNotGroupsUser(c *fiber.Ctx) error {
|
||||
token := checkCookie(c)
|
||||
if token == "" {
|
||||
return c.SendStatus(fiber.StatusForbidden)
|
||||
} else {
|
||||
id := c.Params("id")
|
||||
groups, err := dao.GetGroupNotByMember(id)
|
||||
if err == mongo.ErrNoDocuments {
|
||||
return c.SendStatus(fiber.StatusNotFound)
|
||||
} else if err != nil {
|
||||
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
|
||||
"error": fmt.Sprint(err),
|
||||
})
|
||||
} else {
|
||||
return c.Status(fiber.StatusOK).JSON(groups)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
21
dao/group.go
21
dao/group.go
|
@ -45,6 +45,27 @@ func GetGroupByMember(id string) (group []models.Group, err error) {
|
|||
}
|
||||
}
|
||||
|
||||
func GetGroupNotByMember(id string) (group []models.Group, err error) {
|
||||
db, _ := get()
|
||||
objectId, err := primitive.ObjectIDFromHex(id)
|
||||
defer disconnect(db.Client())
|
||||
coll := db.Collection("groups")
|
||||
|
||||
cursor, err := coll.Find(context.TODO(), bson.D{{"members", bson.D{{"$ne", objectId}}}})
|
||||
defer cursor.Close(context.TODO())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
err = cursor.All(context.TODO(), &group)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
} else {
|
||||
return group, nil
|
||||
}
|
||||
}
|
||||
|
||||
func CheckMemberInGroup(idUser string, idGroup string) (ret bool, err error) {
|
||||
db, _ := get()
|
||||
userObject, err := primitive.ObjectIDFromHex(idUser)
|
||||
|
|
Loading…
Reference in a new issue