Skip to content
This repository was archived by the owner on Jan 23, 2024. It is now read-only.

Commit 0f3e4cb

Browse files
committed
iconをファイルに
1 parent dd2916b commit 0f3e4cb

File tree

1 file changed

+36
-25
lines changed

1 file changed

+36
-25
lines changed

webapp/go/user_handler.go

Lines changed: 36 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -104,20 +104,29 @@ func getIconHandler(c echo.Context) error {
104104
return echo.NewHTTPError(http.StatusInternalServerError, "failed to get user: "+err.Error())
105105
}
106106

107-
var image []byte
108-
if err := tx.GetContext(ctx, &image, "SELECT image FROM icons WHERE user_id = ?", user.ID); err != nil {
109-
if errors.Is(err, sql.ErrNoRows) {
110-
return c.File(fallbackImage)
111-
} else {
112-
return echo.NewHTTPError(http.StatusInternalServerError, "failed to get user icon: "+err.Error())
113-
}
107+
_, err = os.Stat(fmt.Sprintf("../img/user-%d.jpg", user.ID))
108+
if err != nil {
109+
// ないね
110+
return c.File(fallbackImage)
111+
}
112+
image, err := os.ReadFile(fmt.Sprintf("../img/user-%d.jpg", user.ID))
113+
if err != nil {
114+
return echo.NewHTTPError(http.StatusInternalServerError, "failed to get user icon: "+err.Error())
114115
}
115116

117+
// if err := tx.GetContext(ctx, &image, "SELECT image FROM icons WHERE user_id = ?", user.ID); err != nil {
118+
// if errors.Is(err, sql.ErrNoRows) {
119+
// return c.File(fallbackImage)
120+
// } else {
121+
// return echo.NewHTTPError(http.StatusInternalServerError, "failed to get user icon: "+err.Error())
122+
// }
123+
// }
124+
116125
return c.Blob(http.StatusOK, "image/jpeg", image)
117126
}
118127

119128
func postIconHandler(c echo.Context) error {
120-
ctx := c.Request().Context()
129+
//_ := c.Request().Context()
121130

122131
if err := verifyUserSession(c); err != nil {
123132
// echo.NewHTTPErrorが返っているのでそのまま出力
@@ -134,29 +143,31 @@ func postIconHandler(c echo.Context) error {
134143
return echo.NewHTTPError(http.StatusBadRequest, "failed to decode the request body as json")
135144
}
136145

137-
tx, err := dbConn.BeginTxx(ctx, nil)
138-
if err != nil {
139-
return echo.NewHTTPError(http.StatusInternalServerError, "failed to begin transaction: "+err.Error())
140-
}
141-
defer tx.Rollback()
146+
os.WriteFile(fmt.Sprintf("../img/user-%d.jpg", userID), req.Image, 0644)
142147

143-
if _, err := tx.ExecContext(ctx, "DELETE FROM icons WHERE user_id = ?", userID); err != nil {
144-
return echo.NewHTTPError(http.StatusInternalServerError, "failed to delete old user icon: "+err.Error())
145-
}
148+
// tx, err := dbConn.BeginTxx(ctx, nil)
149+
// if err != nil {
150+
// return echo.NewHTTPError(http.StatusInternalServerError, "failed to begin transaction: "+err.Error())
151+
// }
152+
// defer tx.Rollback()
146153

147-
_, err = tx.ExecContext(ctx, "INSERT INTO icons (user_id, image) VALUES (?, ?)", userID, req.Image)
148-
if err != nil {
149-
return echo.NewHTTPError(http.StatusInternalServerError, "failed to insert new user icon: "+err.Error())
150-
}
154+
// if _, err := tx.ExecContext(ctx, "DELETE FROM icons WHERE user_id = ?", userID); err != nil {
155+
// return echo.NewHTTPError(http.StatusInternalServerError, "failed to delete old user icon: "+err.Error())
156+
// }
151157

152-
// iconID, err := rs.LastInsertId()
158+
// _, err = tx.ExecContext(ctx, "INSERT INTO icons (user_id, image) VALUES (?, ?)", userID, req.Image)
153159
// if err != nil {
154-
// return echo.NewHTTPError(http.StatusInternalServerError, "failed to get last inserted icon id: "+err.Error())
160+
// return echo.NewHTTPError(http.StatusInternalServerError, "failed to insert new user icon: "+err.Error())
155161
// }
156162

157-
if err := tx.Commit(); err != nil {
158-
return echo.NewHTTPError(http.StatusInternalServerError, "failed to commit: "+err.Error())
159-
}
163+
// // iconID, err := rs.LastInsertId()
164+
// // if err != nil {
165+
// // return echo.NewHTTPError(http.StatusInternalServerError, "failed to get last inserted icon id: "+err.Error())
166+
// // }
167+
168+
// if err := tx.Commit(); err != nil {
169+
// return echo.NewHTTPError(http.StatusInternalServerError, "failed to commit: "+err.Error())
170+
// }
160171

161172
return c.JSON(http.StatusCreated, &PostIconResponse{
162173
ID: 32,

0 commit comments

Comments
 (0)