package store import ( "codeberg.org/danjones000/combluotion/config" st "github.com/go-ap/fedbox/storage" proc "github.com/go-ap/processing" "github.com/openshift/osin" ) type ClientSaver interface { // UpdateClient updates the client (identified by it's id) and replaces the values with the values of client. UpdateClient(c osin.Client) error // CreateClient stores the client in the database and returns an error, if something went wrong. CreateClient(c osin.Client) error // RemoveClient removes a client (identified by id) from the database. Returns an error if something went wrong. RemoveClient(id string) error } type ClientLister interface { // ListClients lists existing clients ListClients() ([]osin.Client, error) GetClient(id string) (osin.Client, error) } type Bootstrapper interface { // Bootstrap should initialize the data store so that it can be used. // This will be called every time the application starts, so it MUST be idempotent and doesn't delete existing data. // An option is to run migrations in this method. Bootstrap(config.Config) error } type Store interface { Bootstrapper PartStore } type PartStore interface { ClientSaver ClientLister proc.Store proc.KeyLoader osin.Storage st.MetadataTyper }