auth
auth/client.go
Implement GrantStore for Memstore. Fix bug in GrantStore that asks for a UUID when it really wants a string. Implement GrantStore interface in Memstore, including unit tests for successful (i.e., works-as-intended) scenarios.
1 package auth
3 import (
4 "secondbit.org/uuid"
5 )
7 // Client represents a client that grants access
8 // to the auth server, exchanging grants for tokens,
9 // and tokens for access.
10 type Client struct {
11 ID uuid.ID
12 Secret string
13 RedirectURI string
14 OwnerID uuid.ID
15 Name string
16 Logo string
17 Website string
18 }
20 // ClientStore abstracts the storage interface for
21 // storing and retrieving Clients.
22 type ClientStore interface {
23 GetClient(id uuid.ID) (Client, error)
24 SaveClient(client Client) error
25 UpdateClient(id uuid.ID, secret, redirectURI *string, ownerID uuid.ID, name, logo, website *string) error
26 DeleteClient(id uuid.ID) error
27 ListClientsByOwner(ownerID uuid.ID, page, num int) ([]Client, error)
28 }