Files
a301_server/internal/auth/repository.go
tolelom 0ce39a48b9
All checks were successful
Server CI/CD / deploy (push) Successful in 26s
feat: SSAFY OAuth 2.0 로그인 구현
SSAFY 인증 서버를 통한 소셜 로그인 기능 추가.
인가 코드 교환, 사용자 정보 조회, 자동 회원가입 처리.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 23:54:22 +09:00

48 lines
1.1 KiB
Go

package auth
import "gorm.io/gorm"
type Repository struct {
db *gorm.DB
}
func NewRepository(db *gorm.DB) *Repository {
return &Repository{db: db}
}
func (r *Repository) FindByUsername(username string) (*User, error) {
var user User
err := r.db.Where("username = ?", username).First(&user).Error
return &user, err
}
func (r *Repository) Create(user *User) error {
return r.db.Create(user).Error
}
func (r *Repository) FindAll() ([]User, error) {
var users []User
err := r.db.Order("created_at asc").Find(&users).Error
return users, err
}
func (r *Repository) FindByID(id string) (*User, error) {
var user User
err := r.db.First(&user, id).Error
return &user, err
}
func (r *Repository) UpdateRole(id string, role Role) error {
return r.db.Model(&User{}).Where("id = ?", id).Update("role", role).Error
}
func (r *Repository) Delete(id string) error {
return r.db.Delete(&User{}, id).Error
}
func (r *Repository) FindBySsafyID(ssafyID string) (*User, error) {
var user User
err := r.db.Where("ssafy_id = ?", ssafyID).First(&user).Error
return &user, err
}