53 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package client
 | |
| 
 | |
| import (
 | |
| 	"context"
 | |
| 
 | |
| 	"github.com/dexidp/dex/storage"
 | |
| )
 | |
| 
 | |
| // CreateAuthCode saves provided auth code into the database.
 | |
| func (d *Database) CreateAuthCode(code storage.AuthCode) error {
 | |
| 	_, err := d.client.AuthCode.Create().
 | |
| 		SetID(code.ID).
 | |
| 		SetClientID(code.ClientID).
 | |
| 		SetScopes(code.Scopes).
 | |
| 		SetRedirectURI(code.RedirectURI).
 | |
| 		SetNonce(code.Nonce).
 | |
| 		SetClaimsUserID(code.Claims.UserID).
 | |
| 		SetClaimsEmail(code.Claims.Email).
 | |
| 		SetClaimsEmailVerified(code.Claims.EmailVerified).
 | |
| 		SetClaimsUsername(code.Claims.Username).
 | |
| 		SetClaimsPreferredUsername(code.Claims.PreferredUsername).
 | |
| 		SetClaimsGroups(code.Claims.Groups).
 | |
| 		SetCodeChallenge(code.PKCE.CodeChallenge).
 | |
| 		SetCodeChallengeMethod(code.PKCE.CodeChallengeMethod).
 | |
| 		// Save utc time into database because ent doesn't support comparing dates with different timezones
 | |
| 		SetExpiry(code.Expiry.UTC()).
 | |
| 		SetConnectorID(code.ConnectorID).
 | |
| 		SetConnectorData(code.ConnectorData).
 | |
| 		Save(context.TODO())
 | |
| 	if err != nil {
 | |
| 		return convertDBError("create auth code: %w", err)
 | |
| 	}
 | |
| 	return nil
 | |
| }
 | |
| 
 | |
| // GetAuthCode extracts an auth code from the database by id.
 | |
| func (d *Database) GetAuthCode(id string) (storage.AuthCode, error) {
 | |
| 	authCode, err := d.client.AuthCode.Get(context.TODO(), id)
 | |
| 	if err != nil {
 | |
| 		return storage.AuthCode{}, convertDBError("get auth code: %w", err)
 | |
| 	}
 | |
| 	return toStorageAuthCode(authCode), nil
 | |
| }
 | |
| 
 | |
| // DeleteAuthCode deletes an auth code from the database by id.
 | |
| func (d *Database) DeleteAuthCode(id string) error {
 | |
| 	err := d.client.AuthCode.DeleteOneID(id).Exec(context.TODO())
 | |
| 	if err != nil {
 | |
| 		return convertDBError("delete auth code: %w", err)
 | |
| 	}
 | |
| 	return nil
 | |
| }
 |