+31
db.go
+31
db.go
···
1
+
package main
2
+
3
+
import (
4
+
"database/sql"
5
+
"log"
6
+
7
+
_ "github.com/mattn/go-sqlite3"
8
+
)
9
+
10
+
func (s *Server) NewStorage() (*sql.DB, error) {
11
+
db, err := sql.Open("sqlite3", "./scatter.db");
12
+
13
+
_, err = db.Exec(`
14
+
pragma foreign_keys = on;
15
+
pragma journal_mode = wal;
16
+
17
+
create table if not exists relays (
18
+
id integer primary key,
19
+
url text not null,
20
+
created_at datetime default current_timestamp
21
+
)
22
+
`)
23
+
24
+
if err != nil {
25
+
log.Fatal("error initializing database", err)
26
+
}
27
+
28
+
defer db.Close()
29
+
30
+
return db, nil
31
+
}
+2
go.mod
+2
go.mod
+2
go.sum
+2
go.sum
+5
-1
main.go
+5
-1
main.go
···
36
36
w.Write([]byte("Welcome to scatter"))
37
37
})
38
38
39
+
router.HandleFunc("POST /xrpc/com.atproto.sync.register", func(w http.ResponseWriter, r *http.Request) {
40
+
// register with the service to send and recieve requestCrawls
41
+
})
42
+
39
43
router.HandleFunc("POST /xrpc/com.atproto.sync.requestCrawlBroadcast", func(w http.ResponseWriter, req *http.Request) {
40
44
// forward requestCrawl request to list of relays that this service knows about
41
45
})
42
46
43
47
server := http.Server{
44
48
Addr: s.addr,
45
-
WriteTimeout: 5 * time.Second,
49
+
WriteTimeout: 10 * time.Minute,
46
50
ReadTimeout: 10 * time.Second,
47
51
IdleTimeout: 30 * time.Second,
48
52
Handler: router,
History
1 round
0 comments
besaid.zone
submitted
#0
1 commit
expand
collapse
setting up datbase to keep track of registered relays
expand 0 comments
pull request successfully merged