2025-02-12 16:01:36 +01:00

70 lines
1.5 KiB
Go

package repository
import (
"fmt"
"git.0x0001f346.de/andreas/gin-oauth2-demo/core"
"golang.org/x/oauth2"
)
var users map[string]core.User = map[string]core.User{}
var accessTokens map[string]oauth2.Token = map[string]oauth2.Token{}
var accessTokenToUserMapping map[string]string = map[string]string{}
func DeleteAccessToken(s string) {
delete(accessTokens, s)
}
func DeleteAccessTokenToUserMapping(s string) {
delete(accessTokenToUserMapping, s)
}
func DeleteUser(uuid string) {
delete(users, uuid)
}
func GetAccessToken(s string) (oauth2.Token, error) {
accessToken, accessTokenExists := accessTokens[s]
if !accessTokenExists {
return oauth2.Token{}, fmt.Errorf("AccessToken not in repository: %s", s)
}
return accessToken, nil
}
func GetAccessTokenToUserMapping(s string) (string, error) {
uuid, accessTokenToUserMappingExists := accessTokenToUserMapping[s]
if !accessTokenToUserMappingExists {
return "", fmt.Errorf("no user mapped to AccessToken: %s", s)
}
return uuid, nil
}
func GetUser(uuid string) (core.User, error) {
user, userExists := users[uuid]
if !userExists {
return core.User{}, fmt.Errorf("user not in repository: %s", uuid)
}
return user, nil
}
func SetAccessToken(token oauth2.Token) error {
accessTokens[token.AccessToken] = token
return nil
}
func SetAccessTokenToUserMapping(token string, uuid string) error {
accessTokenToUserMapping[token] = uuid
return nil
}
func SetUser(user core.User) error {
users[user.UUID] = user
return nil
}