mirror of
https://codeberg.org/Codeberg/pages-server.git
synced 2024-11-26 05:55:27 +00:00
fd643d15f0
followup of #173 close #95 Reviewed-on: https://codeberg.org/Codeberg/pages-server/pulls/175
50 lines
921 B
Go
50 lines
921 B
Go
package database
|
|
|
|
import (
|
|
"fmt"
|
|
"time"
|
|
|
|
"github.com/OrlovEvgeny/go-mcache"
|
|
"github.com/go-acme/lego/v4/certificate"
|
|
)
|
|
|
|
var _ CertDB = tmpDB{}
|
|
|
|
type tmpDB struct {
|
|
intern *mcache.CacheDriver
|
|
ttl time.Duration
|
|
}
|
|
|
|
func (p tmpDB) Close() error {
|
|
_ = p.intern.Close()
|
|
return nil
|
|
}
|
|
|
|
func (p tmpDB) Put(name string, cert *certificate.Resource) error {
|
|
return p.intern.Set(name, cert, p.ttl)
|
|
}
|
|
|
|
func (p tmpDB) Get(name string) (*certificate.Resource, error) {
|
|
cert, has := p.intern.Get(name)
|
|
if !has {
|
|
return nil, fmt.Errorf("cert for %q not found", name)
|
|
}
|
|
return cert.(*certificate.Resource), nil
|
|
}
|
|
|
|
func (p tmpDB) Delete(key string) error {
|
|
p.intern.Remove(key)
|
|
return nil
|
|
}
|
|
|
|
func (p tmpDB) Items(page, pageSize int) ([]*Cert, error) {
|
|
return nil, fmt.Errorf("items not implemented for tmpDB")
|
|
}
|
|
|
|
func NewTmpDB() (CertDB, error) {
|
|
return &tmpDB{
|
|
intern: mcache.New(),
|
|
ttl: time.Minute,
|
|
}, nil
|
|
}
|