You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
802 B
Go
34 lines
802 B
Go
7 days ago
|
package ratchet
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
"time"
|
||
|
)
|
||
|
|
||
|
type User struct {
|
||
|
ID int `json:"id"`
|
||
|
|
||
|
// User prefered name and email
|
||
|
Name string `json:"name"`
|
||
|
Email string `json:"email"`
|
||
|
|
||
|
// Randomly generated API key for use with the API
|
||
|
// "-" omits the key from serialization
|
||
|
APIKey string `json:"-"`
|
||
|
|
||
|
// Timestamps for user creatation and last update
|
||
|
CreatedAt time.Time `json:"createdAt"`
|
||
|
UpdatedAt time.Time `json:"updatedAt"`
|
||
|
|
||
|
// List of associated Oauth authentication Objects
|
||
|
// Not yet implemented
|
||
|
// Auths []*Auth `json:"auths"`
|
||
|
}
|
||
|
|
||
|
// UserService represents a service for managing users.
|
||
|
type UserService interface {
|
||
|
// Retrieves a user by ID along with their associated auth objects
|
||
|
// Returns ENOTFOUND if user does not exist.
|
||
|
FindUserByID(ctx context.Context, id int) (*User, error)
|
||
|
}
|