MCPcopy Create free account
hub / github.com/crossjoin-io/crossjoin / NewAPI

Function NewAPI

api/api.go:28–59  ·  view source on GitHub ↗

NewAPI returns a new API instance.

(db *sql.DB, configSource, configPath string, dataDir string)

Source from the content-addressed store, hash-verified

26
27// NewAPI returns a new API instance.
28func NewAPI(db *sql.DB, configSource, configPath string, dataDir string) (*API, error) {
29 r := mux.NewRouter()
30
31 err := setupDatabase(db)
32 if err != nil {
33 return nil, err
34 }
35
36 api := &API{
37 db: db,
38 router: r,
39 dataDir: dataDir,
40 configSource: configSource,
41 configPath: configPath,
42 }
43
44 err = api.LoadConfig()
45 if err != nil {
46 return nil, fmt.Errorf("load config: %w", err)
47 }
48
49 go func() {
50 for now := range time.Tick(5 * time.Second) {
51 err = api.Tick(now)
52 if err != nil {
53 log.Fatal(err)
54 }
55 }
56 }()
57
58 return api, nil
59}
60
61func (api *API) Handler() http.Handler {
62 baseMux := http.NewServeMux()

Callers

nothing calls this directly

Calls 3

LoadConfigMethod · 0.95
TickMethod · 0.95
setupDatabaseFunction · 0.85

Tested by

no test coverage detected