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 }