this repo has no description
1package db
2
3import (
4 "database/sql"
5
6 _ "github.com/mattn/go-sqlite3"
7)
8
9type DB struct {
10 db *sql.DB
11}
12
13func Make(dbPath string) (*DB, error) {
14 db, err := sql.Open("sqlite3", dbPath)
15 if err != nil {
16 return nil, err
17 }
18 _, err = db.Exec(`
19 create table if not exists registrations (
20 id integer primary key autoincrement,
21 domain text not null unique,
22 did text not null,
23 secret text not null,
24 created integer default (strftime('%s', 'now')),
25 registered integer);
26 create table if not exists public_keys (
27 id integer primary key autoincrement,
28 did text not null,
29 name text not null,
30 key text not null,
31 created integer default (strftime('%s', 'now')),
32 unique(did, name, key)
33 );
34 create table if not exists repos (
35 id integer primary key autoincrement,
36 did text not null,
37 name text not null,
38 knot text not null,
39 created integer default (strftime('%s', 'now')),
40 unique(did, name, knot)
41 );
42 `)
43 if err != nil {
44 return nil, err
45 }
46 return &DB{db: db}, nil
47}