-
Notifications
You must be signed in to change notification settings - Fork 0
/
conf.go
81 lines (69 loc) · 2.05 KB
/
conf.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
package conf
import (
"encoding/json"
"fmt"
"net/http"
"time"
"github.com/info-matopush/matopush/site"
"google.golang.org/appengine"
"google.golang.org/appengine/log"
)
// RemoveHandler は購読情報を削除する
func RemoveHandler(w http.ResponseWriter, r *http.Request) {
ctx := appengine.NewContext(r)
endpoint := r.FormValue("endpoint")
feedURL := r.FormValue("feedUrl")
Delete(ctx, endpoint, feedURL)
}
// ListHandler は購読しているサイト購読情報を返却する
func ListHandler(w http.ResponseWriter, r *http.Request) {
ctx := appengine.NewContext(r)
endpoint := r.FormValue("endpoint")
cList := GetAllFromEndpoint(ctx, endpoint)
var sList []site.UpdateInfo
for _, c := range cList {
sui, _, err := site.FromURL(ctx, c.FeedURL)
if err != nil {
continue
}
sui.Value = c.Enabled
for i, con := range sui.Contents {
utc := con.ModifyDate.UTC()
jst := time.FixedZone("Asis/Tokyo", 9*60*60)
sui.Contents[i].ModifyDate = utc.In(jst)
}
sList = append(sList, *sui)
log.Infof(ctx, "UpdateInfo %v", sui)
}
b, _ := json.Marshal(sList)
w.Write(b)
}
// SiteHandler はサイト購読情報の更新を処理する
func SiteHandler(w http.ResponseWriter, r *http.Request) {
ctx := appengine.NewContext(r)
endpoint := r.FormValue("endpoint")
siteURL := r.FormValue("siteUrl")
value := r.FormValue("value")
enabled := true
if value == "false" {
enabled = false
}
sui, _, err := site.FromURL(ctx, siteURL)
if err == nil {
err := Update(ctx, endpoint, sui.FeedURL, enabled)
if err == nil {
siteTitle := sui.SiteTitle
if enabled {
fmt.Fprintf(w, "サイト「%s」の更新を「通知する」に設定しました。", siteTitle)
} else {
fmt.Fprintf(w, "サイト「%s」の更新を「通知しない」に設定しました。", siteTitle)
}
} else {
log.Infof(ctx, "Updateに失敗 %v", err)
fmt.Fprint(w, "設定の更新に失敗しました。")
}
} else {
log.Infof(ctx, "site.Getに失敗 %s, %v", siteURL, err)
fmt.Fprint(w, "設定の更新に失敗しました。")
}
}