1
1
package handlers
2
2
3
3
import (
4
- "encoding/base64"
5
4
"errors"
6
5
"fmt"
7
6
"io/ioutil"
@@ -252,7 +251,7 @@ func UserKakaoLoginCallBack(c *gin.Context) {
252
251
c .Redirect (http .StatusFound , redUrl )
253
252
}
254
253
255
- // @Summary 사용자 정보 조회
254
+ // @Summary Token으로 사용자 정보 조회
256
255
// @Description token 클레임에 있는 id 값으로 사용자를 조회합니다.
257
256
// @Tags User
258
257
// @Accept json
@@ -263,7 +262,7 @@ func UserKakaoLoginCallBack(c *gin.Context) {
263
262
// @Failure 404
264
263
// @Failure 500 {object} models.ErrResponse
265
264
// @Router /users [get]
266
- func UserInfo (c * gin.Context ) {
265
+ func UserInfoTokenQuey (c * gin.Context ) {
267
266
au , err := auth .ExtractTokenMetadata (c .Request )
268
267
if err != nil {
269
268
c .JSON (http .StatusUnauthorized , models.ErrResponse {
@@ -272,10 +271,10 @@ func UserInfo(c *gin.Context) {
272
271
return
273
272
}
274
273
275
- users := entitys.User {
274
+ user := entitys.User {
276
275
Id : uint (au .UserId ),
277
276
}
278
- if err := orm .Client .First (& users ).Error ; err != nil {
277
+ if err := orm .Client .First (& user ).Error ; err != nil {
279
278
if errors .Is (err , gorm .ErrRecordNotFound ) {
280
279
c .Status (http .StatusNotFound )
281
280
return
@@ -287,26 +286,41 @@ func UserInfo(c *gin.Context) {
287
286
return
288
287
}
289
288
290
- // [base64 encoding for any image](https://freshman.tech/snippets/go/image-to-base64/)
291
- var base64Encoding string
289
+ res := models .NewUserInfo (user )
290
+ c .JSON (http .StatusOK , res )
291
+ }
292
292
293
- // 이미지 파일의 콘텐츠 유형에 맞게 적절한 URI 체계 헤더를 추가합니다.
294
- mimeType := http .DetectContentType (users .AvatarImage )
295
- switch mimeType {
296
- case "image/jpeg" :
297
- base64Encoding += "data:image/jpeg;base64,"
298
- case "image/png" :
299
- base64Encoding += "data:image/png;base64,"
293
+ // @Summary Email로 사용자 정보 조회
294
+ // @Description 사용자 이메일으로 사용자를 조회합니다.
295
+ // @Tags User
296
+ // @Accept json
297
+ // @Produce json
298
+ // @Param userEmail path string true "사용자 Email"
299
+ // @Success 200 {object} models.UserInfo
300
+ // @Failure 400
301
+ // @Failure 404
302
+ // @Failure 500 {object} models.ErrResponse
303
+ // @Router /users/{userEmail} [get]
304
+ func UserInfoEmailQuey (c * gin.Context ) {
305
+ userEmail := c .Param ("userEmail" )
306
+ if userEmail == "" {
307
+ c .Status (http .StatusBadRequest )
308
+ return
300
309
}
301
310
302
- base64Encoding += base64 .StdEncoding .EncodeToString (users .AvatarImage )
303
-
304
- res := models.UserInfo {
305
- Id : int (users .Id ),
306
- Email : users .Email ,
307
- Name : users .Name ,
308
- AvatarImage : base64Encoding ,
311
+ user := entitys.User {}
312
+ if err := orm .Client .Where ("email = ?" , userEmail ).Find (& user ).Error ; err != nil {
313
+ c .JSON (http .StatusInternalServerError , models.ErrResponse {
314
+ Message : err .Error (),
315
+ })
316
+ return
309
317
}
318
+ if userEmail != user .Email {
319
+ c .Status (http .StatusNotFound )
320
+ return
321
+ }
322
+
323
+ res := models .NewUserInfo (user )
310
324
c .JSON (http .StatusOK , res )
311
325
}
312
326
0 commit comments