Initial import.

This commit is contained in:
Kyle Isom 2022-03-12 20:46:04 -08:00
commit 23efa07dc5
4 changed files with 41 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
kls.conf

3
go.mod Normal file
View File

@ -0,0 +1,3 @@
module git.wntrmute.dev/kyle/kls
go 1.17

30
links/alphabet.go Normal file
View File

@ -0,0 +1,30 @@
package links
import (
"crypto/rand"
"math/big"
)
const codeLength = 5
var (
alphabet = "ABCDEFGHJKMNPQRSTUVWXYZ23456789"
alphabetLength = big.NewInt(int64(len(alphabet)))
)
func randInt() int {
p, err := rand.Int(rand.Reader, alphabetLength)
if err != nil {
panic(err.Error())
}
return int(p.Int64())
}
func GenCode() string {
var code []byte
for i := 0; i < codeLength; i++ {
code = append(code, alphabet[randInt()])
}
return string(code)
}

7
schema.sql Normal file
View File

@ -0,0 +1,7 @@
CREATE TABLE urls (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
url TEXT NOT NULL,
nurl TEXT NOT NULL, -- normalized url
short TEXT NOT NULL UNIQUE,
created_at TIMESTAMPTZ NOT NULL DEFAULT
);