app.yaml: Set api_version "go1".
[kraftakt.git] / app / config.go
1 package app
2
3 import (
4         "context"
5         "sync"
6
7         "google.golang.org/appengine/datastore"
8         "google.golang.org/appengine/log"
9 )
10
11 var Config struct {
12         ProjectNumber string
13
14         FitbitClientID       string
15         FitbitClientSecret   string
16         FitbitSubscriberCode string
17
18         GoogleClientID     string
19         GoogleClientSecret string
20 }
21
22 var mu sync.Mutex
23
24 func LoadConfig(ctx context.Context) error {
25         mu.Lock()
26         defer mu.Unlock()
27
28         if Config.ProjectNumber != "" {
29                 return nil
30         }
31
32         key := datastore.NewKey(ctx, "Config", "Production", 0, nil)
33         if err := datastore.Get(ctx, key, &Config); err != nil {
34                 log.Errorf(ctx, `datastore.Get("Config", "Production") = %v`, err)
35                 return err
36         }
37         return nil
38 }