39 lines
784 B
Go
39 lines
784 B
Go
package services
|
|
|
|
import (
|
|
"api/globals"
|
|
"api/models"
|
|
"time"
|
|
|
|
"github.com/golang-jwt/jwt/v4"
|
|
)
|
|
|
|
var jwtSecret = []byte("your_secret_key") // Replace with your actual secret
|
|
|
|
func GetUserByEmail(email string) models.SystemUser {
|
|
var user models.SystemUser
|
|
|
|
globals.DB.Where("email = ?", email).Find(&user)
|
|
|
|
return user
|
|
}
|
|
|
|
func GetCustomerByCNPJ(cnpj string) models.Customer {
|
|
var user models.Customer
|
|
|
|
globals.DB.Where("cnpj = ?", cnpj).Find(&user)
|
|
|
|
return user
|
|
}
|
|
|
|
func GenerateJWT(channel models.Channel) (string, error) {
|
|
claims := jwt.MapClaims{
|
|
"channel_id": channel.ID,
|
|
"channel_name": channel.Name,
|
|
"exp": time.Now().Add(time.Minute * 60).Unix(),
|
|
}
|
|
|
|
token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)
|
|
return token.SignedString(jwtSecret)
|
|
}
|