LCOV - code coverage report
Current view: top level - shared/ctx/auth - gin_context.go Coverage Total Hit
Test: coverage.lcov Lines: 19.5 % 41 8
Test Date: 2026-04-14 06:42:22 Functions: - 0 0

            Line data    Source code
       1              : // Package auth は Gin の Context で認証情報を扱うヘルパを提供します。
       2              : package auth
       3              : 
       4              : import "github.com/gin-gonic/gin"
       5              : 
       6              : type key string
       7              : 
       8              : const (
       9              :         kUserID      key = "userID"
      10              :         kUID         key = "UID"
      11              :         kFirebaseUID key = "firebaseUID"
      12              :         kEmail       key = "email"
      13              : )
      14              : 
      15              : // SetUserID はユーザーIDを Gin の Context に設定します。
      16            1 : func SetUserID(c *gin.Context, id uint64) {
      17            1 :         c.Set(string(kUserID), id)
      18            1 : }
      19              : 
      20              : // SetFirebaseUID は Firebase UID を設定します。
      21            0 : func SetFirebaseUID(c *gin.Context, uid string) {
      22            0 :         c.Set(string(kUID), uid)
      23            0 :         c.Set(string(kFirebaseUID), uid)
      24            0 : }
      25              : 
      26              : // SetEmail はメールアドレスを設定します。
      27            0 : func SetEmail(c *gin.Context, email *string) {
      28            0 :         c.Set(string(kEmail), email)
      29            0 : }
      30              : 
      31              : // UserID は設定されたユーザーIDを取得します。
      32            1 : func UserID(c *gin.Context) (uint64, bool) {
      33            1 :         v, ok := c.Get(string(kUserID))
      34            1 :         if !ok {
      35            0 :                 return 0, false
      36            0 :         }
      37            1 :         id, ok := v.(uint64)
      38            1 :         return id, ok
      39              : }
      40              : 
      41              : // FirebaseUID は設定された Firebase UID を取得します。
      42            0 : func FirebaseUID(c *gin.Context) (string, bool) {
      43            0 :         v, ok := c.Get(string(kFirebaseUID))
      44            0 :         if !ok {
      45            0 :                 return "", false
      46            0 :         }
      47            0 :         s, ok := v.(string)
      48            0 :         return s, ok
      49              : }
      50              : 
      51              : // UID は設定されたUID(互換キー)を取得します。
      52            0 : func UID(c *gin.Context) (string, bool) {
      53            0 :         v, ok := c.Get(string(kUID))
      54            0 :         if !ok {
      55            0 :                 return "", false
      56            0 :         }
      57            0 :         s, ok := v.(string)
      58            0 :         return s, ok
      59              : }
      60              : 
      61              : // Email は設定されたメールアドレスを取得します。
      62            0 : func Email(c *gin.Context) (*string, bool) {
      63            0 :         v, ok := c.Get(string(kEmail))
      64            0 :         if !ok {
      65            0 :                 return nil, false
      66            0 :         }
      67            0 :         if v == nil {
      68            0 :                 return nil, true // セット済みだが nil
      69            0 :         }
      70            0 :         email, ok := v.(*string)
      71            0 :         return email, ok
      72              : }
        

Generated by: LCOV version 2.3.1-1