···2121 domain text not null unique,
2222 did text not null,
2323 secret text not null,
2424- created integer default (strftime('%s', 'now')),
2525- registered integer);
2424+ created text not null default (strftime('%Y-%m-%dT%H:%M:%SZ', 'now')),
2525+ registered text
2626+ );
2627 create table if not exists public_keys (
2728 id integer primary key autoincrement,
2829 did text not null,
2930 name text not null,
3031 key text not null,
3131- created integer default (strftime('%s', 'now')),
3232+ created text not null default (strftime('%Y-%m-%dT%H:%M:%SZ', 'now')),
3233 unique(did, name, key)
3334 );
3435 create table if not exists repos (
···3637 did text not null,
3738 name text not null,
3839 knot text not null,
3939- created integer default (strftime('%s', 'now')),
4040+ created text not null default (strftime('%Y-%m-%dT%H:%M:%SZ', 'now')),
4041 unique(did, name, knot)
4142 );
4243 `)
+9-7
appview/db/pubkeys.go
···2121 Did string `json:"did"`
2222 Key string `json:"key"`
2323 Name string `json:"name"`
2424- Created time.Time
2424+ Created *time.Time
2525}
26262727func (p PublicKey) MarshalJSON() ([]byte, error) {
2828 type Alias PublicKey
2929 return json.Marshal(&struct {
3030- Created int64 `json:"created"`
3030+ Created string `json:"created"`
3131 *Alias
3232 }{
3333- Created: p.Created.Unix(),
3333+ Created: p.Created.Format(time.RFC3339),
3434 Alias: (*Alias)(&p),
3535 })
3636}
···46464747 for rows.Next() {
4848 var publicKey PublicKey
4949- var createdAt *int64
4949+ var createdAt string
5050 if err := rows.Scan(&publicKey.Key, &publicKey.Name, &publicKey.Did, &createdAt); err != nil {
5151 return nil, err
5252 }
5353- publicKey.Created = time.Unix(*createdAt, 0)
5353+ createdAtTime, _ := time.Parse(time.RFC3339, createdAt)
5454+ publicKey.Created = &createdAtTime
5455 keys = append(keys, publicKey)
5556 }
5657···72737374 for rows.Next() {
7475 var publicKey PublicKey
7575- var createdAt *int64
7676+ var createdAt string
7677 if err := rows.Scan(&publicKey.Did, &publicKey.Key, &publicKey.Name, &createdAt); err != nil {
7778 return nil, err
7879 }
7979- publicKey.Created = time.Unix(*createdAt, 0)
8080+ createdAtTime, _ := time.Parse(time.RFC3339, createdAt)
8181+ publicKey.Created = &createdAtTime
8082 keys = append(keys, publicKey)
8183 }
8284
+9-10
appview/db/registration.go
···4444 }
45454646 for rows.Next() {
4747- var createdAt *int64
4848- var registeredAt *int64
4747+ var createdAt *string
4848+ var registeredAt *string
4949 var registration Registration
5050 err = rows.Scan(®istration.Domain, ®istration.ByDid, &createdAt, ®isteredAt)
51515252 if err != nil {
5353 log.Println(err)
5454 } else {
5555- createdAtTime := time.Unix(*createdAt, 0)
5656-5555+ createdAtTime, _ := time.Parse(time.RFC3339, *createdAt)
5756 var registeredAtTime *time.Time
5857 if registeredAt != nil {
5959- x := time.Unix(*registeredAt, 0)
5858+ x, _ := time.Parse(time.RFC3339, *registeredAt)
6059 registeredAtTime = &x
6160 }
6261···71707271// returns registered status, did of owner, error
7372func (d *DB) RegistrationByDomain(domain string) (*Registration, error) {
7474- var createdAt *int64
7575- var registeredAt *int64
7373+ var createdAt *string
7474+ var registeredAt *string
7675 var registration Registration
77767877 err := d.db.QueryRow(`
···8887 }
8988 }
90899191- createdAtTime := time.Unix(*createdAt, 0)
9090+ createdAtTime, _ := time.Parse(time.RFC3339, *createdAt)
9291 var registeredAtTime *time.Time
9392 if registeredAt != nil {
9494- x := time.Unix(*registeredAt, 0)
9393+ x, _ := time.Parse(time.RFC3339, *registeredAt)
9594 registeredAtTime = &x
9695 }
9796···156155func (d *DB) Register(domain string) error {
157156 _, err := d.db.Exec(`
158157 update registrations
159159- set registered = strftime('%s', 'now')
158158+ set registered = strftime('%Y-%m-%dT%H:%M:%SZ', 'now')
160159 where domain = ?;
161160 `, domain)
162161
+10-5
appview/db/repos.go
···11package db
2233+import "time"
44+35type Repo struct {
46 Did string
57 Name string
68 Knot string
77- Created *int64
99+ Created *time.Time
810}
9111012func (d *DB) GetAllReposByDid(did string) ([]Repo, error) {
···18201921 for rows.Next() {
2022 var repo Repo
2121- var createdAt *int64
2323+ var createdAt string
2224 if err := rows.Scan(&repo.Did, &repo.Name, &repo.Knot, &createdAt); err != nil {
2325 return nil, err
2426 }
2525- repo.Created = createdAt
2727+ createdAtTime, _ := time.Parse(time.RFC3339, createdAt)
2828+ repo.Created = &createdAtTime
2629 repos = append(repos, repo)
2730 }
2831···3740 var repo Repo
38413942 row := d.db.QueryRow(`select did, name, knot, created from repos where did = ? and name = ?`, did, name)
4040- var createdAt *int64
4343+4444+ var createdAt string
4145 if err := row.Scan(&repo.Did, &repo.Name, &repo.Knot, &createdAt); err != nil {
4246 return nil, err
4347 }
4444- repo.Created = createdAt
4848+ createdAtTime, _ := time.Parse(time.RFC3339, createdAt)
4949+ repo.Created = &createdAtTime
45504651 return &repo, nil
4752}
···2525 id integer primary key autoincrement,
2626 did text not null,
2727 key text not null,
2828- created timestamp default current_timestamp,
2828+ created text not null default (strftime('%Y-%m-%dT%H:%M:%SZ', 'now')),
2929 unique(did, key),
3030 foreign key (did) references known_dids(did) on delete cascade
3131 );
···3535 did text not null,
3636 name text not null,
3737 description text not null,
3838- created timestamp default current_timestamp,
3838+ created text not null default (strftime('%Y-%m-%dT%H:%M:%SZ', 'now')),
3939 unique(did, name)
4040 );
4141