package server import ( "context" "fmt" "shlf.space/internal/atproto" "shlf.space/internal/cache" "shlf.space/internal/cache/session" "shlf.space/internal/config" "shlf.space/internal/server/oauth" ) type Server struct { oauth *oauth.OAuth config *config.Config idResolver *atproto.Resolver session *session.SessionStore } func Make(ctx context.Context, config *config.Config) (*Server, error) { idResolver := atproto.DefaultResolver() oauth, err := oauth.New(config, idResolver) if err != nil { return nil, fmt.Errorf("failed to start oauth handler: %w", err) } cache := cache.New(config.Redis.Addr) session := session.New(cache) return &Server{ oauth: oauth, config: config, idResolver: idResolver, session: session, }, nil } func (s *Server) Close() error { return nil }