Skip to content

Commit

Permalink
実験完了 #23
Browse files Browse the repository at this point in the history
  • Loading branch information
shari-sushi committed Dec 17, 2023
1 parent c2c17f7 commit 9d8796f
Show file tree
Hide file tree
Showing 4 changed files with 220 additions and 267 deletions.
32 changes: 23 additions & 9 deletions test0015Go/cmd/main.go
Original file line number Diff line number Diff line change
@@ -1,22 +1,36 @@
package main

import "github.com/sharin-sushi/0015docker/sample"
import (
"github.com/gin-gonic/gin"
"github.com/sharin-sushi/0015docker/sample"
)

// "github.com/sharin-sushi/0015docker/sample" // 消えないようにメモ

func main() {
// pointer.go
// for x, y := range のテスト
// r := gin.Default()
// r.GET("/1", test1)
// r.GET("/2", test2)
// r.GET("/2a", test2a)
// r.GET("/3", test3)
// r.Run("localhost:8080")

r := gin.Default()
rangeTest := r.Group("/range")
{
rangeTest.GET("/1", sample.Test1)
rangeTest.GET("/2", sample.Test2)
rangeTest.GET("/2a", sample.Test2a)
rangeTest.GET("/3", sample.Test3)
}
// crypt.go AES化
// sample.AlterMainCrypt2() //元記事ほぼそのままのもの
sample.AlterMainCrypt() //自分用に改変したもの
// sample.AlterMainCrypt() //自分用に改変したもの

// pointer.go
// このままだとニルポエラーでpanicして落ちる
// sample.AleterMainPointer()

// type_json.go
typeTest := r.Group("/type")
{
typeTest.GET("/vt-slise", sample.AlterMainType)
}
r.Run("localhost:8080")

}
253 changes: 0 additions & 253 deletions test0015Go/infra/db.go
Original file line number Diff line number Diff line change
Expand Up @@ -79,256 +79,3 @@ func migration() {
// domain.KaraokeList{}, domain.Movie{},
)
}

// // 会員登録
// func CalltoSignUpHandler(c *gin.Context) {
// h := Handler{DB: Db}
// h.SignUpHandler(c)
// }

// func (h *Handler) SignUpHandler(c *gin.Context) {
// var user domain.Listener
// err := c.ShouldBind(&user)
// if err != nil {
// c.JSON(http.StatusBadRequest, gin.H{
// "message": "Invalid request body",
// })
// return
// }
// fmt.Printf("bindしたuser = %v \n", user)

// err = user.ValidateSignup()
// if err != nil {
// c.JSON(http.StatusBadRequest, gin.H{
// "message": err.Error(),
// })
// return
// }

// existingUser, _ := domain.FindUserByEmail(h.DB, user.Email) //メアドが未使用ならnil
// fmt.Printf("existingUser= %v \n", existingUser)
// // ↓既存アカがあった際に、処理停止してくれるけど、c.JSONとfmt.Printはしてくれない、、、。
// if existingUser.ListenerId != 0 {
// c.JSON(http.StatusBadRequest, gin.H{
// "error": err.Error(),
// "message": "the E-mail address already in use",
// })
// return
// }

// //passwordの照合
// user.Password = crypto.EncryptPasswordWithoutBackErr(user.Password)

// result := Db.Select("listener_name", "email", "password").Create(&user)
// if result.Error != nil {
// c.JSON(http.StatusBadRequest, gin.H{
// "message": result.Error,
// })
// return
// }

// // IdをJWT化しCookieにセット
// trigerSetCookiebyUserAuth(c, user.ListenerId)

// c.JSON(http.StatusOK, gin.H{
// // "memberId": newMember.ListenerId,
// // "memberName": newMember.ListenerName,
// "message": "Successfully created user, and logined",
// })
// }

// //ログイン
// func CalltoLogInHandler(c *gin.Context) {
// h := Handler{DB: Db}
// h.LoginHandler(c)
// }
// func (h *Handler) LoginHandler(c *gin.Context) {
// var loginInput domain.Listener
// if err := c.ShouldBind(&loginInput); err != nil {
// c.JSON(http.StatusBadRequest, gin.H{
// "error": err.Error(),
// "message": "Invalid request body",
// })
// return
// }

// user, err := domain.FindUserByEmail(h.DB, loginInput.Email) //メアドが未登録なら err = !nil
// if err != nil {
// c.JSON(http.StatusBadRequest, gin.H{
// "error": err.Error(),
// "message": "the E-mail address id NOTalready in use",
// })
// return
// }

// CheckPassErr := crypto.CompareHashAndPassword(user.Password, loginInput.Password) //pass認証
// if CheckPassErr != nil {
// c.JSON(http.StatusUnauthorized, gin.H{
// "message": "Password is invalid",
// })
// return
// }
// fmt.Printf("ChechkPassErr=%v \n", CheckPassErr)

// // IdをJWT化しCookieにセット
// trigerSetCookiebyUserAuth(c, user.ListenerId)

// c.JSON(http.StatusOK, gin.H{
// "message": "Successfully Logged In",
// "listenerId": user.ListenerId,
// "listenerName": user.ListenerName,
// })
// }

// // IdをJWT化しCookieにセット。ログイン、サインイン時に呼び出される。
// func trigerSetCookiebyUserAuth(c *gin.Context, ListenerId int) {
// // Token発行 = JWTでいいのかな?
// token, err := token.GenerateToken(ListenerId)
// if err != nil {
// c.JSON(http.StatusBadRequest, gin.H{
// "message": "Failed to sign up",
// })
// return
// }
// // Cookieにトークンをセット
// cookieMaxAge := 60 * 60 * 24 * 365

// // domain := getdomain()
// domain := "localhost"

// newCookie := &http.Cookie{
// Name: "auth-token",
// // Name: "next-auth.session-token",
// Value: token,
// Path: "/",
// Domain: domain,
// MaxAge: cookieMaxAge,
// HttpOnly: true,
// Secure: true, //httpsの環境ではtrueにすること。
// SameSite: http.SameSiteStrictMode,
// }
// http.SetCookie(c.Writer, newCookie)
// fmt.Printf("発行したcookie= %v /n", newCookie)
// }

// func getdomain() string {
// // ローカル環境
// if os.Getenv("ENV") == "local" {
// return "localhoset"
// // 本番環境
// } else if os.Getenv("ENV") == "production" {
// return "my_domain"
// } else {
// return ""
// }
// }

// // JWTからlistenerIdを取得。なお、コードの理解度低い。
// func TakeListenerIdFromJWT(c *gin.Context) (int, error) {
// tokenString, _ := c.Cookie("auth-token")
// // tokenString, _ := c.Cookie("next-auth.session-token") 不要

// // token, err := jwt.Parse(tokenString, func(token *jwt.Token) (interface{}, error) {
// token, err := jwt.Parse(tokenString, func(token *jwt.Token) (interface{}, error) {
// return []byte(os.Getenv("SECRET_KEY")), nil
// })
// if err != nil {
// c.JSON(http.StatusUnauthorized, gin.H{"error": "Invalid token"})
// return 0, err
// }
// fmt.Printf("token= %v \n", token)

// var listenerId int
// if claims, ok := token.Claims.(jwt.MapClaims); ok {
// if val, exists := claims["listener_id"]; exists {
// // JSON numbers are float64

// listenerIdFloat, ok := val.(float64)
// if !ok {
// // c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid listener_id format in token"})
// // err == nil
// return 0, fmt.Errorf("Invalid listener_id format in token")
// }
// listenerId = int(listenerIdFloat)
// } else {
// c.JSON(http.StatusBadRequest, gin.H{"error": "listener_id not found in token"})
// return 0, err
// }
// }
// return listenerId, err
// }

// // /users/profile
// func (h *Handler) GetListenerProfile(c *gin.Context) {
// tokenLId, err := TakeListenerIdFromJWT(c)

// ListenerInfo, err := domain.FindUserByListenerId(h.DB, tokenLId)
// if err != nil {
// c.JSON(http.StatusInternalServerError, gin.H{"error": "Error fetching listener info"})
// return
// }

// fmt.Printf("ListenerInfo = %v \n", ListenerInfo)

// c.JSON(http.StatusOK, gin.H{
// "ListenerId": ListenerInfo.ListenerId,
// "ListenerName": ListenerInfo.ListenerName,
// "CreatedAt": ListenerInfo.CreatedAt,
// "UpdatedAt": ListenerInfo.UpdatedAt,
// "Email": "secret",
// "Password": "secret",
// "message": "got urself infomation",
// })
// }

// // ログアウト
// func LogoutHandler(c *gin.Context) {
// fmt.Print("LogoutHandlerの中")
// c.SetCookie("auth-token", "none", -1, "/", "localhost", false, true)

// c.JSON(http.StatusOK, gin.H{
// "message": "Successfully Logged Out",
// })
// }

// // lister_id = 3 はゲストアカウントにつき、退会不可。
// func Withdrawal(c *gin.Context) {
// tokenLId, err := TakeListenerIdFromJWT(c)
// fmt.Printf("tokenLId = %v \n", tokenLId)
// if err != nil {
// c.JSON(http.StatusBadRequest, gin.H{
// "message": "Invalid ListenerId of token",
// "err": err,
// })
// return
// } else if tokenLId == 3 {
// c.JSON(http.StatusBadRequest, gin.H{
// "message": "ゲストアカウントは退会できません。",
// })
// return
// }
// var dummyLi domain.Listener
// dummyLi.ListenerId = tokenLId
// result := Db.Delete(&dummyLi)
// if result.Error != nil {
// c.JSON(http.StatusBadRequest, gin.H{
// "message": "Invalid Withdrawn",
// "err": result.Error,
// })
// return
// }
// c.SetCookie("auth-token", "none", -1, "/", "localhost", false, true)
// c.JSON(http.StatusOK, gin.H{
// "message": "Successfully Withdrawn",
// })
// }

// // lister_id = 3, listener_name = guest
// func GestlogIn(c *gin.Context) {
// trigerSetCookiebyUserAuth(c, 3)
// c.JSON(http.StatusOK, gin.H{
// "message": "Successfully Guest Logged In",
// "listenerId": "3",
// "listenerName": "guest",
// })
// }
10 changes: 5 additions & 5 deletions test0015Go/sample/for_rang.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ var likeCnts = []LikeCount{
}

// 結果 panic
func test1(c *gin.Context) {
func Test1(c *gin.Context) {
var movieWithLikeCnts []MovieWithLikeCnt

for i, movie := range movies {
Expand Down Expand Up @@ -67,7 +67,7 @@ type MovieWithLikeCnt struct {
LikeCnt int
}

func test2(c *gin.Context) {
func Test2(c *gin.Context) {
var transmitData []MovieWithLikeCnt

// {1, "imo", ":8080"}, {2, "me", ":3000"}, {3, "chumu", ":80"},
Expand Down Expand Up @@ -99,7 +99,7 @@ type MovieWithLikeCnt2 struct {
LikeCnt int
}

func test3(c *gin.Context) {
func Test3(c *gin.Context) {
var transmitData []MovieWithLikeCnt2

for _, movie := range movies {
Expand Down Expand Up @@ -130,8 +130,8 @@ func returnLikeCntEachMovieId(movieId int, likeCnts []LikeCount) LikeCount {
return LikeCount{MovieId: movieId, Count: 0}
}

// test2の処理目視用
func test2a(c *gin.Context) {
// Test2の処理目視用
func Test2a(c *gin.Context) {
// transmitData を作成
var transmitData []MovieWithLikeCnt

Expand Down
Loading

0 comments on commit 9d8796f

Please sign in to comment.