// Archive a user func (*UsersController) Archive(ctx *gin.Context) { var archiveJSON usernameUserJSON ctx.Bind(&archiveJSON) var userToArchive = models.User{} err := userToArchive.FindByUsername(archiveJSON.Username) if err != nil { AbortWithReturnError(ctx, http.StatusBadRequest, fmt.Errorf("user with username %s does not exist", archiveJSON.Username)) return } if userToArchive.IsArchived { AbortWithReturnError(ctx, http.StatusBadRequest, fmt.Errorf("user with username %s is already archived", archiveJSON.Username)) return } err = userToArchive.Archive(utils.GetCtxUsername(ctx)) if err != nil { AbortWithReturnError(ctx, http.StatusBadRequest, fmt.Errorf("archive user %s failed", archiveJSON.Username)) return } ctx.JSON(http.StatusCreated, "") }