Compare commits
3 Commits
14910d8a5f
...
c81a0d3294
Author | SHA1 | Date | |
---|---|---|---|
c81a0d3294 | |||
dd942f12f7 | |||
f29eeae9d9 |
@ -49,11 +49,8 @@ func (db *Db) GetUsers() ([]User, error) {
|
||||
func (db *Db) GetUser(id int) (*UserWithAllowance, error) {
|
||||
user := &UserWithAllowance{}
|
||||
|
||||
err := db.db.Query("select u.id, u.name, sum(h.amount) from users u join history h on h.user_id = u.id where u.id = ?").
|
||||
err := db.db.Query("select u.id, u.name, (select ifnull(sum(h.amount), 0) from history h where h.user_id = u.id) from users u where u.id = ?").
|
||||
Bind(id).ScanSingle(&user.ID, &user.Name, &user.Allowance)
|
||||
if errors.Is(err, mysqlite.ErrNoRows) {
|
||||
return nil, nil
|
||||
}
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -62,15 +62,15 @@ func getUser(c *gin.Context) {
|
||||
}
|
||||
|
||||
user, err := db.GetUser(userId)
|
||||
if errors.Is(err, mysqlite.ErrNoRows) {
|
||||
c.JSON(http.StatusNotFound, gin.H{"error": ErrUserNotFound})
|
||||
return
|
||||
}
|
||||
if err != nil {
|
||||
log.Printf("Error getting user: %v", err)
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"error": ErrInternalServerError})
|
||||
return
|
||||
}
|
||||
if user == nil {
|
||||
c.JSON(http.StatusNotFound, gin.H{"error": ErrUserNotFound})
|
||||
return
|
||||
}
|
||||
|
||||
c.IndentedJSON(http.StatusOK, user)
|
||||
}
|
||||
@ -305,6 +305,17 @@ func postAllowance(c *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
exists, err := db.UserExists(userId)
|
||||
if err != nil {
|
||||
log.Printf(ErrCheckingUserExist, err)
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"error": ErrInternalServerError})
|
||||
return
|
||||
}
|
||||
if !exists {
|
||||
c.JSON(http.StatusNotFound, gin.H{"error": ErrUserNotFound})
|
||||
return
|
||||
}
|
||||
|
||||
err = db.AddAllowance(userId, &allowanceRequest)
|
||||
if err != nil {
|
||||
log.Printf("Error updating allowance: %v", err)
|
||||
|
@ -60,29 +60,6 @@ paths:
|
||||
description: The users could not be found.
|
||||
|
||||
/user/{userId}/allowance:
|
||||
get:
|
||||
summary: Gets the allowance breakdown of a user
|
||||
parameters:
|
||||
- in: path
|
||||
name: userId
|
||||
description: The user ID
|
||||
required: true
|
||||
schema:
|
||||
type: integer
|
||||
responses:
|
||||
200:
|
||||
description: Information about the allowance of the user
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
allowance:
|
||||
type: integer
|
||||
description: The total allowance value of the user, in cents.
|
||||
goals:
|
||||
type: array
|
||||
$ref: "#/components/schemas/goal"
|
||||
post:
|
||||
summary: Updates the allowance of a user
|
||||
parameters:
|
||||
|
Loading…
x
Reference in New Issue
Block a user