fixed filtering on connected user
added tests and updated demo data
This commit is contained in:
37
book_test.go
37
book_test.go
@@ -31,6 +31,19 @@ func connectDemoUser(router *gin.Engine) string {
|
|||||||
"username": "demo",
|
"username": "demo",
|
||||||
"password":"demopw"
|
"password":"demopw"
|
||||||
}`
|
}`
|
||||||
|
return connectUser(router, loginJson)
|
||||||
|
}
|
||||||
|
|
||||||
|
func connectDemo2User(router *gin.Engine) string {
|
||||||
|
loginJson :=
|
||||||
|
`{
|
||||||
|
"username": "demo2",
|
||||||
|
"password":"demopw"
|
||||||
|
}`
|
||||||
|
return connectUser(router, loginJson)
|
||||||
|
}
|
||||||
|
|
||||||
|
func connectUser(router *gin.Engine, loginJson string) string {
|
||||||
w := httptest.NewRecorder()
|
w := httptest.NewRecorder()
|
||||||
req, _ := http.NewRequest("POST", "/auth/login", strings.NewReader(loginJson))
|
req, _ := http.NewRequest("POST", "/auth/login", strings.NewReader(loginJson))
|
||||||
router.ServeHTTP(w, req)
|
router.ServeHTTP(w, req)
|
||||||
@@ -48,13 +61,27 @@ type bookUserGet struct {
|
|||||||
Rating int `json:"rating" binding:"min=0,max=10"`
|
Rating int `json:"rating" binding:"min=0,max=10"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestGetBooksHandler(t *testing.T) {
|
func TestGetBooksHandler_Demo(t *testing.T) {
|
||||||
router := testSetup()
|
router := testSetup()
|
||||||
w := httptest.NewRecorder()
|
|
||||||
|
|
||||||
token := connectDemoUser(router)
|
token := connectDemoUser(router)
|
||||||
|
books := testGetbooksHandler(t, router, token, 200)
|
||||||
|
assert.Equal(t, 26, len(books))
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestGetBooksHandler_Demo2(t *testing.T) {
|
||||||
|
router := testSetup()
|
||||||
|
|
||||||
|
token := connectDemo2User(router)
|
||||||
|
books := testGetbooksHandler(t, router, token, 200)
|
||||||
|
assert.Equal(t, 2, len(books))
|
||||||
|
}
|
||||||
|
|
||||||
|
func testGetbooksHandler(t *testing.T, router *gin.Engine, userToken string, expectedCode int) []bookUserGet {
|
||||||
req, _ := http.NewRequest("GET", "/mybooks", nil)
|
req, _ := http.NewRequest("GET", "/mybooks", nil)
|
||||||
req.Header.Add("Authorization", fmt.Sprintf("Bearer %s", token))
|
req.Header.Add("Authorization", fmt.Sprintf("Bearer %s", userToken))
|
||||||
|
|
||||||
|
w := httptest.NewRecorder()
|
||||||
router.ServeHTTP(w, req)
|
router.ServeHTTP(w, req)
|
||||||
|
|
||||||
var parsedResponse []bookUserGet
|
var parsedResponse []bookUserGet
|
||||||
@@ -62,8 +89,8 @@ func TestGetBooksHandler(t *testing.T) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
assert.Equal(t, 200, w.Code)
|
assert.Equal(t, expectedCode, w.Code)
|
||||||
assert.Equal(t, 28, len(parsedResponse))
|
return parsedResponse
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestPostBookHandler_Ok(t *testing.T) {
|
func TestPostBookHandler_Ok(t *testing.T) {
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
INSERT INTO users(created_at, name, password) VALUES ('NOW', 'demo','$2a$10$7mfCBxBwIzXDU6r9az26o.zPX/r6IlNZVfU9zxSoLVtc0kRPimzba');
|
INSERT INTO users(created_at, name, password) VALUES ('NOW', 'demo','$2a$10$7mfCBxBwIzXDU6r9az26o.zPX/r6IlNZVfU9zxSoLVtc0kRPimzba');
|
||||||
|
INSERT INTO users(created_at, name, password) VALUES ('NOW', 'demo2','$2a$10$7mfCBxBwIzXDU6r9az26o.zPX/r6IlNZVfU9zxSoLVtc0kRPimzba');
|
||||||
INSERT INTO books(created_at, title, author, added_by_id) VALUES ('NOW', 'O dingos, o chateaux!','Jean-Patrick Manchette', (SELECT id FROM users WHERE name = 'demo'));
|
INSERT INTO books(created_at, title, author, added_by_id) VALUES ('NOW', 'O dingos, o chateaux!','Jean-Patrick Manchette', (SELECT id FROM users WHERE name = 'demo'));
|
||||||
INSERT INTO user_books(created_at, user_id, book_id, rating) VALUES ('NOW',(SELECT id FROM users WHERE name = 'demo'),(SELECT id FROM books WHERE title = 'O dingos, o chateaux!') ,7);
|
INSERT INTO user_books(created_at, user_id, book_id, rating) VALUES ('NOW',(SELECT id FROM users WHERE name = 'demo'),(SELECT id FROM books WHERE title = 'O dingos, o chateaux!') ,7);
|
||||||
INSERT INTO books(created_at, title, author, added_by_id) VALUES ('NOW', 'Le petit bleu de la côte Ouest','Jean-Patrick Manchette', (SELECT id FROM users WHERE name = 'demo'));
|
INSERT INTO books(created_at, title, author, added_by_id) VALUES ('NOW', 'Le petit bleu de la côte Ouest','Jean-Patrick Manchette', (SELECT id FROM users WHERE name = 'demo'));
|
||||||
@@ -34,13 +35,13 @@ INSERT INTO user_books(created_at, user_id, book_id, rating) VALUES ('NOW',(SELE
|
|||||||
INSERT INTO books(created_at, title, author, added_by_id) VALUES ('NOW', 'Le coup de pistolet','Alexandre Pouchkine', (SELECT id FROM users WHERE name = 'demo'));
|
INSERT INTO books(created_at, title, author, added_by_id) VALUES ('NOW', 'Le coup de pistolet','Alexandre Pouchkine', (SELECT id FROM users WHERE name = 'demo'));
|
||||||
INSERT INTO user_books(created_at, user_id, book_id, rating) VALUES ('NOW',(SELECT id FROM users WHERE name = 'demo'),(SELECT id FROM books WHERE title = 'Le coup de pistolet'),8);
|
INSERT INTO user_books(created_at, user_id, book_id, rating) VALUES ('NOW',(SELECT id FROM users WHERE name = 'demo'),(SELECT id FROM books WHERE title = 'Le coup de pistolet'),8);
|
||||||
INSERT INTO books(created_at, title, author, added_by_id) VALUES ('NOW', 'De sang-froid','Truman Capote', (SELECT id FROM users WHERE name = 'demo'));
|
INSERT INTO books(created_at, title, author, added_by_id) VALUES ('NOW', 'De sang-froid','Truman Capote', (SELECT id FROM users WHERE name = 'demo'));
|
||||||
INSERT INTO user_books(created_at, user_id, book_id, rating) VALUES ('NOW',(SELECT id FROM users WHERE name = 'demo'),(SELECT id FROM books WHERE title = 'De sang-froid'),6);
|
INSERT INTO user_books(created_at, user_id, book_id, rating) VALUES ('NOW',(SELECT id FROM users WHERE name = 'demo2'),(SELECT id FROM books WHERE title = 'De sang-froid'),6);
|
||||||
INSERT INTO books(created_at, title, author, added_by_id) VALUES ('NOW', 'La position du tireur couché','Jean-Patrick Manchette', (SELECT id FROM users WHERE name = 'demo'));
|
INSERT INTO books(created_at, title, author, added_by_id) VALUES ('NOW', 'La position du tireur couché','Jean-Patrick Manchette', (SELECT id FROM users WHERE name = 'demo'));
|
||||||
INSERT INTO user_books(created_at, user_id, book_id, rating) VALUES ('NOW',(SELECT id FROM users WHERE name = 'demo'),(SELECT id FROM books WHERE title = 'La position du tireur couché'),6);
|
INSERT INTO user_books(created_at, user_id, book_id, rating) VALUES ('NOW',(SELECT id FROM users WHERE name = 'demo'),(SELECT id FROM books WHERE title = 'La position du tireur couché'),6);
|
||||||
INSERT INTO books(created_at, title, author, added_by_id) VALUES ('NOW', 'Vers le Phare','Virginia Woolf', (SELECT id FROM users WHERE name = 'demo'));
|
INSERT INTO books(created_at, title, author, added_by_id) VALUES ('NOW', 'Vers le Phare','Virginia Woolf', (SELECT id FROM users WHERE name = 'demo'));
|
||||||
INSERT INTO user_books(created_at, user_id, book_id, rating) VALUES ('NOW',(SELECT id FROM users WHERE name = 'demo'),(SELECT id FROM books WHERE title = 'Vers le Phare'),6);
|
INSERT INTO user_books(created_at, user_id, book_id, rating) VALUES ('NOW',(SELECT id FROM users WHERE name = 'demo'),(SELECT id FROM books WHERE title = 'Vers le Phare'),6);
|
||||||
INSERT INTO books(created_at, title, author, added_by_id) VALUES ('NOW', 'L''insoutenable légèreté de l''être', 'Milan Kundera', (SELECT id FROM users WHERE name = 'demo'));
|
INSERT INTO books(created_at, title, author, added_by_id) VALUES ('NOW', 'L''insoutenable légèreté de l''être', 'Milan Kundera', (SELECT id FROM users WHERE name = 'demo'));
|
||||||
INSERT INTO user_books(created_at, user_id, book_id, rating) VALUES ('NOW',(SELECT id FROM users WHERE name = 'demo'),(SELECT id FROM books WHERE title = 'L''insoutenable légèreté de l''être') ,8);
|
INSERT INTO user_books(created_at, user_id, book_id, rating) VALUES ('NOW',(SELECT id FROM users WHERE name = 'demo2'),(SELECT id FROM books WHERE title = 'L''insoutenable légèreté de l''être') ,8);
|
||||||
INSERT INTO books(created_at, title, author, added_by_id) VALUES ('NOW', 'Le complot contre l''Amérique','Philip Roth', (SELECT id FROM users WHERE name = 'demo'));
|
INSERT INTO books(created_at, title, author, added_by_id) VALUES ('NOW', 'Le complot contre l''Amérique','Philip Roth', (SELECT id FROM users WHERE name = 'demo'));
|
||||||
INSERT INTO user_books(created_at, user_id, book_id, rating) VALUES ('NOW',(SELECT id FROM users WHERE name = 'demo'),(SELECT id FROM books WHERE title = 'Le complot contre l''Amérique'),6);
|
INSERT INTO user_books(created_at, user_id, book_id, rating) VALUES ('NOW',(SELECT id FROM users WHERE name = 'demo'),(SELECT id FROM books WHERE title = 'Le complot contre l''Amérique'),6);
|
||||||
INSERT INTO books(created_at, title, author, added_by_id) VALUES ('NOW', 'Nord','Louis-Ferdinand Céline', (SELECT id FROM users WHERE name = 'demo'));
|
INSERT INTO books(created_at, title, author, added_by_id) VALUES ('NOW', 'Nord','Louis-Ferdinand Céline', (SELECT id FROM users WHERE name = 'demo'));
|
||||||
|
|||||||
@@ -15,7 +15,12 @@ import (
|
|||||||
|
|
||||||
func GetMyBooksHanderl(c *gin.Context, db *gorm.DB) {
|
func GetMyBooksHanderl(c *gin.Context, db *gorm.DB) {
|
||||||
var userbooks []model.UserBook
|
var userbooks []model.UserBook
|
||||||
db.Preload("Book").Find(&userbooks)
|
user, err := getAuthenticatedUser(c, db)
|
||||||
|
if err != nil {
|
||||||
|
manageDefaultError(c, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
db.Preload("Book").Where("user_id = ?", user.ID).Find(&userbooks)
|
||||||
var booksDto []bookUserGet
|
var booksDto []bookUserGet
|
||||||
for _, userbook := range userbooks {
|
for _, userbook := range userbooks {
|
||||||
booksDto = append(booksDto, fromUserBookDb(&userbook))
|
booksDto = append(booksDto, fromUserBookDb(&userbook))
|
||||||
|
|||||||
Reference in New Issue
Block a user