package controllers

import (
	"gitea.zjmud.xyz/phyer/rbac/services"
	"github.com/gin-gonic/gin"
)

func Register(c *gin.Context) {
	var registerData struct {
		Username string `json:"username"`
		Password string `json:"password"`
		Email    string `json:"email"`
	}
	if err := c.ShouldBindJSON(&registerData); err != nil {
		c.JSON(400, gin.H{"error": err.Error()})
		return
	}
	user, err := services.RegisterUser(registerData.Username, registerData.Password, registerData.Email)
	if err != nil {
		c.JSON(500, gin.H{"error": err.Error()})
		return
	}
	c.JSON(201, user)
}

func Login(c *gin.Context) {
	var loginData struct {
		Username string `json:"username"`
		Password string `json:"password"`
	}
	if err := c.ShouldBindJSON(&loginData); err != nil {
		c.JSON(400, gin.H{"error": err.Error()})
		return
	}
	token, err := services.Login(loginData.Username, loginData.Password)
	if err != nil {
		c.JSON(401, gin.H{"error": err.Error()})
		return
	}
	c.JSON(200, gin.H{"token": token})
}