mirror of
https://github.com/onsonr/motr.git
synced 2025-03-10 17:29:10 +00:00
refactor: migrate from sonr to motr
This commit is contained in:
parent
022d9d3097
commit
3df0954086
46
Makefile
46
Makefile
@ -5,16 +5,28 @@ BINDIR ?= $(GOPATH)/bin
|
|||||||
|
|
||||||
# for dockerized protobuf tools
|
# for dockerized protobuf tools
|
||||||
DOCKER := $(shell which docker)
|
DOCKER := $(shell which docker)
|
||||||
HTTPS_GIT := github.com/onsonr/sonr.git
|
HTTPS_GIT := github.com/onsonr/hway.git
|
||||||
|
|
||||||
all: test
|
|
||||||
|
all: install test
|
||||||
|
|
||||||
build: go.sum
|
build: go.sum
|
||||||
GOOS=js GOARCH=wasm go build -o static/wasm/app.wasm ./cmd/motr/main.go
|
GOOS=js GOARCH=wasm go build -o build/app.wasm ./cmd/main.go
|
||||||
|
|
||||||
|
install: go.sum
|
||||||
|
go install -mod=readonly ./cmd/hway
|
||||||
|
|
||||||
########################################
|
########################################
|
||||||
### Tools & dependencies
|
### Tools & dependencies
|
||||||
########################################
|
########################################
|
||||||
|
pkl-gen:
|
||||||
|
@go install github.com/apple/pkl-go/cmd/pkl-gen-go@latest
|
||||||
|
@pkl-gen-go ./pkl/App.pkl
|
||||||
|
|
||||||
|
sqlc-gen:
|
||||||
|
@go install github.com/sqlc-dev/sqlc/cmd/sqlc@latest
|
||||||
|
@go install github.com/apple/pkl-go/cmd/pkl-gen-go@latest
|
||||||
|
@cd internal && sqlc generate
|
||||||
|
|
||||||
go-mod-cache: go.sum
|
go-mod-cache: go.sum
|
||||||
@echo "--> Download go modules to local cache"
|
@echo "--> Download go modules to local cache"
|
||||||
@ -29,39 +41,17 @@ draw-deps:
|
|||||||
go install github.com/RobotsAndPencils/goviz@latest
|
go install github.com/RobotsAndPencils/goviz@latest
|
||||||
@goviz -i ./cmd/sonrd -d 2 | dot -Tpng -o dependency-graph.png
|
@goviz -i ./cmd/sonrd -d 2 | dot -Tpng -o dependency-graph.png
|
||||||
|
|
||||||
install-deps:
|
|
||||||
echo "Installing dependencies"
|
|
||||||
@go install github.com/sqlc-dev/sqlc/cmd/sqlc@latest
|
|
||||||
@go install github.com/a-h/templ/cmd/templ@latest
|
|
||||||
@go install github.com/go-task/task/v3/cmd/task@latest
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf .aider*
|
rm -rf .aider*
|
||||||
rm -rf static
|
rm -rf static
|
||||||
rm -rf .out
|
rm -rf .out
|
||||||
|
rm -rf hway.db
|
||||||
|
rm -rf snapcraft-local.yaml build/
|
||||||
rm -rf build
|
rm -rf build
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -rf vendor/
|
rm -rf vendor/
|
||||||
|
|
||||||
########################################
|
|
||||||
### Testing
|
|
||||||
########################################
|
|
||||||
|
|
||||||
test: test-unit
|
|
||||||
test-all: test-race test-cover test-system
|
|
||||||
|
|
||||||
test-unit:
|
|
||||||
@VERSION=$(VERSION) go test -mod=readonly -tags='ledger test_ledger_mock' ./...
|
|
||||||
|
|
||||||
test-race:
|
|
||||||
@VERSION=$(VERSION) go test -mod=readonly -race -tags='ledger test_ledger_mock' ./...
|
|
||||||
|
|
||||||
test-cover:
|
|
||||||
@go test -mod=readonly -timeout 30m -race -coverprofile=coverage.txt -covermode=atomic -tags='ledger test_ledger_mock' ./...
|
|
||||||
|
|
||||||
benchmark:
|
|
||||||
@go test -mod=readonly -bench=. ./...
|
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
### help ###
|
### help ###
|
||||||
@ -71,6 +61,8 @@ help:
|
|||||||
@echo "Usage: make <target>"
|
@echo "Usage: make <target>"
|
||||||
@echo ""
|
@echo ""
|
||||||
@echo "Available targets:"
|
@echo "Available targets:"
|
||||||
|
@echo " install : Install the binary"
|
||||||
|
@echo " local-image : Install the docker image"
|
||||||
@echo " proto-gen : Generate code from proto files"
|
@echo " proto-gen : Generate code from proto files"
|
||||||
@echo " testnet : Local devnet with IBC"
|
@echo " testnet : Local devnet with IBC"
|
||||||
@echo " sh-testnet : Shell local devnet"
|
@echo " sh-testnet : Shell local devnet"
|
||||||
|
@ -7,7 +7,7 @@ import (
|
|||||||
echomiddleware "github.com/labstack/echo/v4/middleware"
|
echomiddleware "github.com/labstack/echo/v4/middleware"
|
||||||
"github.com/onsonr/sonr/internal/config/motr"
|
"github.com/onsonr/sonr/internal/config/motr"
|
||||||
"github.com/onsonr/sonr/internal/database/motrorm"
|
"github.com/onsonr/sonr/internal/database/motrorm"
|
||||||
"github.com/onsonr/sonr/vault/context"
|
"github.com/onsonr/motr/pkg/context"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Vault = *echo.Echo
|
type Vault = *echo.Echo
|
||||||
|
27
go.mod
27
go.mod
@ -1,3 +1,30 @@
|
|||||||
module github.com/onsonr/motr
|
module github.com/onsonr/motr
|
||||||
|
|
||||||
go 1.23.4
|
go 1.23.4
|
||||||
|
|
||||||
|
require (
|
||||||
|
github.com/a-h/templ v0.3.819
|
||||||
|
github.com/apple/pkl-go v0.9.0
|
||||||
|
github.com/ipfs/boxo v0.26.0
|
||||||
|
github.com/labstack/echo/v4 v4.13.3
|
||||||
|
github.com/ncruces/go-sqlite3 v0.21.3
|
||||||
|
github.com/onsonr/sonr v0.6.1
|
||||||
|
)
|
||||||
|
|
||||||
|
require (
|
||||||
|
github.com/crackcomm/go-gitignore v0.0.0-20241020182519-7843d2ba8fdf // indirect
|
||||||
|
github.com/labstack/gommon v0.4.2 // indirect
|
||||||
|
github.com/mattn/go-colorable v0.1.13 // indirect
|
||||||
|
github.com/mattn/go-isatty v0.0.20 // indirect
|
||||||
|
github.com/ncruces/julianday v1.0.0 // indirect
|
||||||
|
github.com/tetratelabs/wazero v1.8.2 // indirect
|
||||||
|
github.com/valyala/bytebufferpool v1.0.0 // indirect
|
||||||
|
github.com/valyala/fasttemplate v1.2.2 // indirect
|
||||||
|
github.com/vmihailenco/msgpack/v5 v5.4.1 // indirect
|
||||||
|
github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect
|
||||||
|
golang.org/x/crypto v0.31.0 // indirect
|
||||||
|
golang.org/x/net v0.33.0 // indirect
|
||||||
|
golang.org/x/sys v0.28.0 // indirect
|
||||||
|
golang.org/x/text v0.21.0 // indirect
|
||||||
|
golang.org/x/time v0.8.0 // indirect
|
||||||
|
)
|
||||||
|
55
go.sum
Normal file
55
go.sum
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
github.com/a-h/templ v0.3.819 h1:KDJ5jTFN15FyJnmSmo2gNirIqt7hfvBD2VXVDTySckM=
|
||||||
|
github.com/a-h/templ v0.3.819/go.mod h1:iDJKJktpttVKdWoTkRNNLcllRI+BlpopJc+8au3gOUo=
|
||||||
|
github.com/apple/pkl-go v0.9.0 h1:aA4Bh+WQ797p8nEnQhHzCahVuQP2HJ40ffSQWlAR5es=
|
||||||
|
github.com/apple/pkl-go v0.9.0/go.mod h1:5Hwil5tyZGrOekh7JXLZJvIAcGHb4gT19lnv4WEiKeI=
|
||||||
|
github.com/crackcomm/go-gitignore v0.0.0-20241020182519-7843d2ba8fdf h1:dwGgBWn84wUS1pVikGiruW+x5XM4amhjaZO20vCjay4=
|
||||||
|
github.com/crackcomm/go-gitignore v0.0.0-20241020182519-7843d2ba8fdf/go.mod h1:p1d6YEZWvFzEh4KLyvBcVSnrfNDDvK2zfK/4x2v/4pE=
|
||||||
|
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
|
||||||
|
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
|
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
|
||||||
|
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
||||||
|
github.com/ipfs/boxo v0.26.0 h1:RRxEon7rJMy8ScVaTLncSZ5/nA6majYhRSbzc80snO8=
|
||||||
|
github.com/ipfs/boxo v0.26.0/go.mod h1:iHyc9cjoF7/zoiKVY65d2fBWRhoS2zx4cMk8hKgqrac=
|
||||||
|
github.com/labstack/echo/v4 v4.13.3 h1:pwhpCPrTl5qry5HRdM5FwdXnhXSLSY+WE+YQSeCaafY=
|
||||||
|
github.com/labstack/echo/v4 v4.13.3/go.mod h1:o90YNEeQWjDozo584l7AwhJMHN0bOC4tAfg+Xox9q5g=
|
||||||
|
github.com/labstack/gommon v0.4.2 h1:F8qTUNXgG1+6WQmqoUWnz8WiEU60mXVVw0P4ht1WRA0=
|
||||||
|
github.com/labstack/gommon v0.4.2/go.mod h1:QlUFxVM+SNXhDL/Z7YhocGIBYOiwB0mXm1+1bAPHPyU=
|
||||||
|
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
|
||||||
|
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
|
||||||
|
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
|
||||||
|
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
|
||||||
|
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
|
||||||
|
github.com/ncruces/go-sqlite3 v0.21.3 h1:hHkfNQLcbnxPJZhC/RGw9SwP3bfkv/Y0xUHWsr1CdMQ=
|
||||||
|
github.com/ncruces/go-sqlite3 v0.21.3/go.mod h1:zxMOaSG5kFYVFK4xQa0pdwIszqxqJ0W0BxBgwdrNjuA=
|
||||||
|
github.com/ncruces/julianday v1.0.0 h1:fH0OKwa7NWvniGQtxdJRxAgkBMolni2BjDHaWTxqt7M=
|
||||||
|
github.com/ncruces/julianday v1.0.0/go.mod h1:Dusn2KvZrrovOMJuOt0TNXL6tB7U2E8kvza5fFc9G7g=
|
||||||
|
github.com/onsonr/sonr v0.6.1 h1:pNP2BbOfe/3UN/bZSYNyf9F+nlIpZaqi2LJ6Ol0496w=
|
||||||
|
github.com/onsonr/sonr v0.6.1/go.mod h1:L4ywLeJemlGD2pmlIX/j3eEKEgu5o/yzgFjkHNr7dAk=
|
||||||
|
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
|
||||||
|
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||||
|
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
|
||||||
|
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
||||||
|
github.com/tetratelabs/wazero v1.8.2 h1:yIgLR/b2bN31bjxwXHD8a3d+BogigR952csSDdLYEv4=
|
||||||
|
github.com/tetratelabs/wazero v1.8.2/go.mod h1:yAI0XTsMBhREkM/YDAK/zNou3GoiAce1P6+rp/wQhjs=
|
||||||
|
github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
|
||||||
|
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
|
||||||
|
github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo=
|
||||||
|
github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ=
|
||||||
|
github.com/vmihailenco/msgpack/v5 v5.4.1 h1:cQriyiUvjTwOHg8QZaPihLWeRAAVoCpE00IUPn0Bjt8=
|
||||||
|
github.com/vmihailenco/msgpack/v5 v5.4.1/go.mod h1:GaZTsDaehaPpQVyxrf5mtQlH+pc21PIudVV/E3rRQok=
|
||||||
|
github.com/vmihailenco/tagparser/v2 v2.0.0 h1:y09buUbR+b5aycVFQs/g70pqKVZNBmxwAhO7/IwNM9g=
|
||||||
|
github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds=
|
||||||
|
golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U=
|
||||||
|
golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk=
|
||||||
|
golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I=
|
||||||
|
golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4=
|
||||||
|
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
|
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
|
golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA=
|
||||||
|
golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||||
|
golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
|
||||||
|
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
|
||||||
|
golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg=
|
||||||
|
golang.org/x/time v0.8.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
|
||||||
|
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||||
|
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
18
internal/config/Config.pkl.go
Normal file
18
internal/config/Config.pkl.go
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
// Code generated from Pkl module `sonr.net.Motr`. DO NOT EDIT.
|
||||||
|
package config
|
||||||
|
|
||||||
|
type Config struct {
|
||||||
|
IpfsGatewayUrl string `pkl:"ipfsGatewayUrl" json:"ipfsGatewayUrl,omitempty"`
|
||||||
|
|
||||||
|
MotrToken string `pkl:"motrToken" json:"motrToken,omitempty"`
|
||||||
|
|
||||||
|
MotrAddress string `pkl:"motrAddress" json:"motrAddress,omitempty"`
|
||||||
|
|
||||||
|
SonrApiUrl string `pkl:"sonrApiUrl" json:"sonrApiUrl,omitempty"`
|
||||||
|
|
||||||
|
SonrRpcUrl string `pkl:"sonrRpcUrl" json:"sonrRpcUrl,omitempty"`
|
||||||
|
|
||||||
|
SonrChainId string `pkl:"sonrChainId" json:"sonrChainId,omitempty"`
|
||||||
|
|
||||||
|
VaultSchema *Schema `pkl:"vaultSchema" json:"vaultSchema,omitempty"`
|
||||||
|
}
|
14
internal/config/Environment.pkl.go
Normal file
14
internal/config/Environment.pkl.go
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
// Code generated from Pkl module `sonr.net.Motr`. DO NOT EDIT.
|
||||||
|
package config
|
||||||
|
|
||||||
|
type Environment struct {
|
||||||
|
IsDevelopment bool `pkl:"isDevelopment" json:"isDevelopment,omitempty"`
|
||||||
|
|
||||||
|
CacheVersion string `pkl:"cacheVersion" json:"cacheVersion,omitempty"`
|
||||||
|
|
||||||
|
HttpserverPath string `pkl:"httpserverPath" json:"httpserverPath,omitempty"`
|
||||||
|
|
||||||
|
WasmExecPath string `pkl:"wasmExecPath" json:"wasmExecPath,omitempty"`
|
||||||
|
|
||||||
|
WasmPath string `pkl:"wasmPath" json:"wasmPath,omitempty"`
|
||||||
|
}
|
36
internal/config/Motr.pkl.go
Normal file
36
internal/config/Motr.pkl.go
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
// Code generated from Pkl module `sonr.net.Motr`. DO NOT EDIT.
|
||||||
|
package config
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"github.com/apple/pkl-go/pkl"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Motr struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
// LoadFromPath loads the pkl module at the given path and evaluates it into a Motr
|
||||||
|
func LoadFromPath(ctx context.Context, path string) (ret *Motr, err error) {
|
||||||
|
evaluator, err := pkl.NewEvaluator(ctx, pkl.PreconfiguredOptions)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
defer func() {
|
||||||
|
cerr := evaluator.Close()
|
||||||
|
if err == nil {
|
||||||
|
err = cerr
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
ret, err = Load(ctx, evaluator, pkl.FileSource(path))
|
||||||
|
return ret, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Load loads the pkl module at the given source and evaluates it with the given evaluator into a Motr
|
||||||
|
func Load(ctx context.Context, evaluator pkl.Evaluator, source *pkl.ModuleSource) (*Motr, error) {
|
||||||
|
var ret Motr
|
||||||
|
if err := evaluator.EvaluateModule(ctx, source, &ret); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &ret, nil
|
||||||
|
}
|
22
internal/config/Schema.pkl.go
Normal file
22
internal/config/Schema.pkl.go
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
// Code generated from Pkl module `sonr.net.Motr`. DO NOT EDIT.
|
||||||
|
package config
|
||||||
|
|
||||||
|
type Schema struct {
|
||||||
|
Version int `pkl:"version"`
|
||||||
|
|
||||||
|
Account string `pkl:"account" json:"account,omitempty"`
|
||||||
|
|
||||||
|
Asset string `pkl:"asset" json:"asset,omitempty"`
|
||||||
|
|
||||||
|
Chain string `pkl:"chain" json:"chain,omitempty"`
|
||||||
|
|
||||||
|
Credential string `pkl:"credential" json:"credential,omitempty"`
|
||||||
|
|
||||||
|
Jwk string `pkl:"jwk" json:"jwk,omitempty"`
|
||||||
|
|
||||||
|
Grant string `pkl:"grant" json:"grant,omitempty"`
|
||||||
|
|
||||||
|
Keyshare string `pkl:"keyshare" json:"keyshare,omitempty"`
|
||||||
|
|
||||||
|
Profile string `pkl:"profile" json:"profile,omitempty"`
|
||||||
|
}
|
11
internal/config/init.pkl.go
Normal file
11
internal/config/init.pkl.go
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
// Code generated from Pkl module `sonr.net.Motr`. DO NOT EDIT.
|
||||||
|
package config
|
||||||
|
|
||||||
|
import "github.com/apple/pkl-go/pkl"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
pkl.RegisterMapping("sonr.net.Motr", Motr{})
|
||||||
|
pkl.RegisterMapping("sonr.net.Motr#Config", Config{})
|
||||||
|
pkl.RegisterMapping("sonr.net.Motr#Schema", Schema{})
|
||||||
|
pkl.RegisterMapping("sonr.net.Motr#Environment", Environment{})
|
||||||
|
}
|
31
internal/models/db.go
Normal file
31
internal/models/db.go
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
// Code generated by sqlc. DO NOT EDIT.
|
||||||
|
// versions:
|
||||||
|
// sqlc v1.27.0
|
||||||
|
|
||||||
|
package models
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"database/sql"
|
||||||
|
)
|
||||||
|
|
||||||
|
type DBTX interface {
|
||||||
|
ExecContext(context.Context, string, ...interface{}) (sql.Result, error)
|
||||||
|
PrepareContext(context.Context, string) (*sql.Stmt, error)
|
||||||
|
QueryContext(context.Context, string, ...interface{}) (*sql.Rows, error)
|
||||||
|
QueryRowContext(context.Context, string, ...interface{}) *sql.Row
|
||||||
|
}
|
||||||
|
|
||||||
|
func New(db DBTX) *Queries {
|
||||||
|
return &Queries{db: db}
|
||||||
|
}
|
||||||
|
|
||||||
|
type Queries struct {
|
||||||
|
db DBTX
|
||||||
|
}
|
||||||
|
|
||||||
|
func (q *Queries) WithTx(tx *sql.Tx) *Queries {
|
||||||
|
return &Queries{
|
||||||
|
db: tx,
|
||||||
|
}
|
||||||
|
}
|
99
internal/models/models.go
Normal file
99
internal/models/models.go
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
// Code generated by sqlc. DO NOT EDIT.
|
||||||
|
// versions:
|
||||||
|
// sqlc v1.27.0
|
||||||
|
|
||||||
|
package models
|
||||||
|
|
||||||
|
import (
|
||||||
|
"database/sql"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Account struct {
|
||||||
|
ID string `json:"id"`
|
||||||
|
CreatedAt time.Time `json:"created_at"`
|
||||||
|
UpdatedAt time.Time `json:"updated_at"`
|
||||||
|
DeletedAt sql.NullTime `json:"deleted_at"`
|
||||||
|
Number int64 `json:"number"`
|
||||||
|
Sequence int64 `json:"sequence"`
|
||||||
|
Address string `json:"address"`
|
||||||
|
PublicKey string `json:"public_key"`
|
||||||
|
ChainID string `json:"chain_id"`
|
||||||
|
Controller string `json:"controller"`
|
||||||
|
IsSubsidiary bool `json:"is_subsidiary"`
|
||||||
|
IsValidator bool `json:"is_validator"`
|
||||||
|
IsDelegator bool `json:"is_delegator"`
|
||||||
|
IsAccountable bool `json:"is_accountable"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Asset struct {
|
||||||
|
ID string `json:"id"`
|
||||||
|
CreatedAt time.Time `json:"created_at"`
|
||||||
|
UpdatedAt time.Time `json:"updated_at"`
|
||||||
|
DeletedAt sql.NullTime `json:"deleted_at"`
|
||||||
|
Name string `json:"name"`
|
||||||
|
Symbol string `json:"symbol"`
|
||||||
|
Decimals int64 `json:"decimals"`
|
||||||
|
ChainID string `json:"chain_id"`
|
||||||
|
Channel string `json:"channel"`
|
||||||
|
AssetType string `json:"asset_type"`
|
||||||
|
CoingeckoID sql.NullString `json:"coingecko_id"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Credential struct {
|
||||||
|
ID string `json:"id"`
|
||||||
|
CreatedAt time.Time `json:"created_at"`
|
||||||
|
UpdatedAt time.Time `json:"updated_at"`
|
||||||
|
DeletedAt sql.NullTime `json:"deleted_at"`
|
||||||
|
Handle string `json:"handle"`
|
||||||
|
CredentialID string `json:"credential_id"`
|
||||||
|
AuthenticatorAttachment string `json:"authenticator_attachment"`
|
||||||
|
Origin string `json:"origin"`
|
||||||
|
Type string `json:"type"`
|
||||||
|
Transports string `json:"transports"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Profile struct {
|
||||||
|
ID string `json:"id"`
|
||||||
|
CreatedAt time.Time `json:"created_at"`
|
||||||
|
UpdatedAt time.Time `json:"updated_at"`
|
||||||
|
DeletedAt sql.NullTime `json:"deleted_at"`
|
||||||
|
Address string `json:"address"`
|
||||||
|
Handle string `json:"handle"`
|
||||||
|
Origin string `json:"origin"`
|
||||||
|
Name string `json:"name"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Session struct {
|
||||||
|
ID string `json:"id"`
|
||||||
|
CreatedAt time.Time `json:"created_at"`
|
||||||
|
UpdatedAt time.Time `json:"updated_at"`
|
||||||
|
DeletedAt sql.NullTime `json:"deleted_at"`
|
||||||
|
BrowserName string `json:"browser_name"`
|
||||||
|
BrowserVersion string `json:"browser_version"`
|
||||||
|
ClientIpaddr string `json:"client_ipaddr"`
|
||||||
|
Platform string `json:"platform"`
|
||||||
|
IsDesktop bool `json:"is_desktop"`
|
||||||
|
IsMobile bool `json:"is_mobile"`
|
||||||
|
IsTablet bool `json:"is_tablet"`
|
||||||
|
IsTv bool `json:"is_tv"`
|
||||||
|
IsBot bool `json:"is_bot"`
|
||||||
|
Challenge string `json:"challenge"`
|
||||||
|
IsHumanFirst bool `json:"is_human_first"`
|
||||||
|
IsHumanLast bool `json:"is_human_last"`
|
||||||
|
ProfileID int64 `json:"profile_id"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Vault struct {
|
||||||
|
ID string `json:"id"`
|
||||||
|
CreatedAt time.Time `json:"created_at"`
|
||||||
|
UpdatedAt time.Time `json:"updated_at"`
|
||||||
|
DeletedAt sql.NullTime `json:"deleted_at"`
|
||||||
|
Handle string `json:"handle"`
|
||||||
|
Origin string `json:"origin"`
|
||||||
|
Address string `json:"address"`
|
||||||
|
Cid string `json:"cid"`
|
||||||
|
Config string `json:"config"`
|
||||||
|
SessionID string `json:"session_id"`
|
||||||
|
RedirectUri string `json:"redirect_uri"`
|
||||||
|
}
|
34
internal/models/querier.go
Normal file
34
internal/models/querier.go
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
// Code generated by sqlc. DO NOT EDIT.
|
||||||
|
// versions:
|
||||||
|
// sqlc v1.27.0
|
||||||
|
|
||||||
|
package models
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Querier interface {
|
||||||
|
CheckHandleExists(ctx context.Context, handle string) (bool, error)
|
||||||
|
CreateSession(ctx context.Context, arg CreateSessionParams) (Session, error)
|
||||||
|
GetChallengeBySessionID(ctx context.Context, id string) (string, error)
|
||||||
|
GetCredentialByID(ctx context.Context, credentialID string) (Credential, error)
|
||||||
|
GetCredentialsByHandle(ctx context.Context, handle string) ([]Credential, error)
|
||||||
|
GetHumanVerificationNumbers(ctx context.Context, id string) (GetHumanVerificationNumbersRow, error)
|
||||||
|
GetProfileByAddress(ctx context.Context, address string) (Profile, error)
|
||||||
|
GetProfileByHandle(ctx context.Context, handle string) (Profile, error)
|
||||||
|
GetProfileByID(ctx context.Context, id string) (Profile, error)
|
||||||
|
GetSessionByClientIP(ctx context.Context, clientIpaddr string) (Session, error)
|
||||||
|
GetSessionByID(ctx context.Context, id string) (Session, error)
|
||||||
|
GetVaultConfigByCID(ctx context.Context, cid string) (Vault, error)
|
||||||
|
GetVaultRedirectURIBySessionID(ctx context.Context, sessionID string) (string, error)
|
||||||
|
InsertCredential(ctx context.Context, arg InsertCredentialParams) (Credential, error)
|
||||||
|
InsertProfile(ctx context.Context, arg InsertProfileParams) (Profile, error)
|
||||||
|
SoftDeleteCredential(ctx context.Context, credentialID string) error
|
||||||
|
SoftDeleteProfile(ctx context.Context, address string) error
|
||||||
|
UpdateProfile(ctx context.Context, arg UpdateProfileParams) (Profile, error)
|
||||||
|
UpdateSessionHumanVerification(ctx context.Context, arg UpdateSessionHumanVerificationParams) (Session, error)
|
||||||
|
UpdateSessionWithProfileID(ctx context.Context, arg UpdateSessionWithProfileIDParams) (Session, error)
|
||||||
|
}
|
||||||
|
|
||||||
|
var _ Querier = (*Queries)(nil)
|
581
internal/models/query.sql.go
Normal file
581
internal/models/query.sql.go
Normal file
@ -0,0 +1,581 @@
|
|||||||
|
// Code generated by sqlc. DO NOT EDIT.
|
||||||
|
// versions:
|
||||||
|
// sqlc v1.27.0
|
||||||
|
// source: query.sql
|
||||||
|
|
||||||
|
package models
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
)
|
||||||
|
|
||||||
|
const checkHandleExists = `-- name: CheckHandleExists :one
|
||||||
|
SELECT COUNT(*) > 0 as handle_exists FROM profiles
|
||||||
|
WHERE handle = ?
|
||||||
|
AND deleted_at IS NULL
|
||||||
|
`
|
||||||
|
|
||||||
|
func (q *Queries) CheckHandleExists(ctx context.Context, handle string) (bool, error) {
|
||||||
|
row := q.db.QueryRowContext(ctx, checkHandleExists, handle)
|
||||||
|
var handle_exists bool
|
||||||
|
err := row.Scan(&handle_exists)
|
||||||
|
return handle_exists, err
|
||||||
|
}
|
||||||
|
|
||||||
|
const createSession = `-- name: CreateSession :one
|
||||||
|
INSERT INTO sessions (
|
||||||
|
id,
|
||||||
|
browser_name,
|
||||||
|
browser_version,
|
||||||
|
client_ipaddr,
|
||||||
|
platform,
|
||||||
|
is_desktop,
|
||||||
|
is_mobile,
|
||||||
|
is_tablet,
|
||||||
|
is_tv,
|
||||||
|
is_bot,
|
||||||
|
challenge,
|
||||||
|
is_human_first,
|
||||||
|
is_human_last,
|
||||||
|
profile_id
|
||||||
|
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )
|
||||||
|
RETURNING id, created_at, updated_at, deleted_at, browser_name, browser_version, client_ipaddr, platform, is_desktop, is_mobile, is_tablet, is_tv, is_bot, challenge, is_human_first, is_human_last, profile_id
|
||||||
|
`
|
||||||
|
|
||||||
|
type CreateSessionParams struct {
|
||||||
|
ID string `json:"id"`
|
||||||
|
BrowserName string `json:"browser_name"`
|
||||||
|
BrowserVersion string `json:"browser_version"`
|
||||||
|
ClientIpaddr string `json:"client_ipaddr"`
|
||||||
|
Platform string `json:"platform"`
|
||||||
|
IsDesktop bool `json:"is_desktop"`
|
||||||
|
IsMobile bool `json:"is_mobile"`
|
||||||
|
IsTablet bool `json:"is_tablet"`
|
||||||
|
IsTv bool `json:"is_tv"`
|
||||||
|
IsBot bool `json:"is_bot"`
|
||||||
|
Challenge string `json:"challenge"`
|
||||||
|
IsHumanFirst bool `json:"is_human_first"`
|
||||||
|
IsHumanLast bool `json:"is_human_last"`
|
||||||
|
ProfileID int64 `json:"profile_id"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (q *Queries) CreateSession(ctx context.Context, arg CreateSessionParams) (Session, error) {
|
||||||
|
row := q.db.QueryRowContext(ctx, createSession,
|
||||||
|
arg.ID,
|
||||||
|
arg.BrowserName,
|
||||||
|
arg.BrowserVersion,
|
||||||
|
arg.ClientIpaddr,
|
||||||
|
arg.Platform,
|
||||||
|
arg.IsDesktop,
|
||||||
|
arg.IsMobile,
|
||||||
|
arg.IsTablet,
|
||||||
|
arg.IsTv,
|
||||||
|
arg.IsBot,
|
||||||
|
arg.Challenge,
|
||||||
|
arg.IsHumanFirst,
|
||||||
|
arg.IsHumanLast,
|
||||||
|
arg.ProfileID,
|
||||||
|
)
|
||||||
|
var i Session
|
||||||
|
err := row.Scan(
|
||||||
|
&i.ID,
|
||||||
|
&i.CreatedAt,
|
||||||
|
&i.UpdatedAt,
|
||||||
|
&i.DeletedAt,
|
||||||
|
&i.BrowserName,
|
||||||
|
&i.BrowserVersion,
|
||||||
|
&i.ClientIpaddr,
|
||||||
|
&i.Platform,
|
||||||
|
&i.IsDesktop,
|
||||||
|
&i.IsMobile,
|
||||||
|
&i.IsTablet,
|
||||||
|
&i.IsTv,
|
||||||
|
&i.IsBot,
|
||||||
|
&i.Challenge,
|
||||||
|
&i.IsHumanFirst,
|
||||||
|
&i.IsHumanLast,
|
||||||
|
&i.ProfileID,
|
||||||
|
)
|
||||||
|
return i, err
|
||||||
|
}
|
||||||
|
|
||||||
|
const getChallengeBySessionID = `-- name: GetChallengeBySessionID :one
|
||||||
|
SELECT challenge FROM sessions
|
||||||
|
WHERE id = ? AND deleted_at IS NULL
|
||||||
|
LIMIT 1
|
||||||
|
`
|
||||||
|
|
||||||
|
func (q *Queries) GetChallengeBySessionID(ctx context.Context, id string) (string, error) {
|
||||||
|
row := q.db.QueryRowContext(ctx, getChallengeBySessionID, id)
|
||||||
|
var challenge string
|
||||||
|
err := row.Scan(&challenge)
|
||||||
|
return challenge, err
|
||||||
|
}
|
||||||
|
|
||||||
|
const getCredentialByID = `-- name: GetCredentialByID :one
|
||||||
|
SELECT id, created_at, updated_at, deleted_at, handle, credential_id, authenticator_attachment, origin, type, transports FROM credentials
|
||||||
|
WHERE credential_id = ?
|
||||||
|
AND deleted_at IS NULL
|
||||||
|
LIMIT 1
|
||||||
|
`
|
||||||
|
|
||||||
|
func (q *Queries) GetCredentialByID(ctx context.Context, credentialID string) (Credential, error) {
|
||||||
|
row := q.db.QueryRowContext(ctx, getCredentialByID, credentialID)
|
||||||
|
var i Credential
|
||||||
|
err := row.Scan(
|
||||||
|
&i.ID,
|
||||||
|
&i.CreatedAt,
|
||||||
|
&i.UpdatedAt,
|
||||||
|
&i.DeletedAt,
|
||||||
|
&i.Handle,
|
||||||
|
&i.CredentialID,
|
||||||
|
&i.AuthenticatorAttachment,
|
||||||
|
&i.Origin,
|
||||||
|
&i.Type,
|
||||||
|
&i.Transports,
|
||||||
|
)
|
||||||
|
return i, err
|
||||||
|
}
|
||||||
|
|
||||||
|
const getCredentialsByHandle = `-- name: GetCredentialsByHandle :many
|
||||||
|
SELECT id, created_at, updated_at, deleted_at, handle, credential_id, authenticator_attachment, origin, type, transports FROM credentials
|
||||||
|
WHERE handle = ?
|
||||||
|
AND deleted_at IS NULL
|
||||||
|
`
|
||||||
|
|
||||||
|
func (q *Queries) GetCredentialsByHandle(ctx context.Context, handle string) ([]Credential, error) {
|
||||||
|
rows, err := q.db.QueryContext(ctx, getCredentialsByHandle, handle)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
defer rows.Close()
|
||||||
|
var items []Credential
|
||||||
|
for rows.Next() {
|
||||||
|
var i Credential
|
||||||
|
if err := rows.Scan(
|
||||||
|
&i.ID,
|
||||||
|
&i.CreatedAt,
|
||||||
|
&i.UpdatedAt,
|
||||||
|
&i.DeletedAt,
|
||||||
|
&i.Handle,
|
||||||
|
&i.CredentialID,
|
||||||
|
&i.AuthenticatorAttachment,
|
||||||
|
&i.Origin,
|
||||||
|
&i.Type,
|
||||||
|
&i.Transports,
|
||||||
|
); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
items = append(items, i)
|
||||||
|
}
|
||||||
|
if err := rows.Close(); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if err := rows.Err(); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return items, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
const getHumanVerificationNumbers = `-- name: GetHumanVerificationNumbers :one
|
||||||
|
SELECT is_human_first, is_human_last FROM sessions
|
||||||
|
WHERE id = ? AND deleted_at IS NULL
|
||||||
|
LIMIT 1
|
||||||
|
`
|
||||||
|
|
||||||
|
type GetHumanVerificationNumbersRow struct {
|
||||||
|
IsHumanFirst bool `json:"is_human_first"`
|
||||||
|
IsHumanLast bool `json:"is_human_last"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (q *Queries) GetHumanVerificationNumbers(ctx context.Context, id string) (GetHumanVerificationNumbersRow, error) {
|
||||||
|
row := q.db.QueryRowContext(ctx, getHumanVerificationNumbers, id)
|
||||||
|
var i GetHumanVerificationNumbersRow
|
||||||
|
err := row.Scan(&i.IsHumanFirst, &i.IsHumanLast)
|
||||||
|
return i, err
|
||||||
|
}
|
||||||
|
|
||||||
|
const getProfileByAddress = `-- name: GetProfileByAddress :one
|
||||||
|
SELECT id, created_at, updated_at, deleted_at, address, handle, origin, name FROM profiles
|
||||||
|
WHERE address = ? AND deleted_at IS NULL
|
||||||
|
LIMIT 1
|
||||||
|
`
|
||||||
|
|
||||||
|
func (q *Queries) GetProfileByAddress(ctx context.Context, address string) (Profile, error) {
|
||||||
|
row := q.db.QueryRowContext(ctx, getProfileByAddress, address)
|
||||||
|
var i Profile
|
||||||
|
err := row.Scan(
|
||||||
|
&i.ID,
|
||||||
|
&i.CreatedAt,
|
||||||
|
&i.UpdatedAt,
|
||||||
|
&i.DeletedAt,
|
||||||
|
&i.Address,
|
||||||
|
&i.Handle,
|
||||||
|
&i.Origin,
|
||||||
|
&i.Name,
|
||||||
|
)
|
||||||
|
return i, err
|
||||||
|
}
|
||||||
|
|
||||||
|
const getProfileByHandle = `-- name: GetProfileByHandle :one
|
||||||
|
SELECT id, created_at, updated_at, deleted_at, address, handle, origin, name FROM profiles
|
||||||
|
WHERE handle = ?
|
||||||
|
AND deleted_at IS NULL
|
||||||
|
LIMIT 1
|
||||||
|
`
|
||||||
|
|
||||||
|
func (q *Queries) GetProfileByHandle(ctx context.Context, handle string) (Profile, error) {
|
||||||
|
row := q.db.QueryRowContext(ctx, getProfileByHandle, handle)
|
||||||
|
var i Profile
|
||||||
|
err := row.Scan(
|
||||||
|
&i.ID,
|
||||||
|
&i.CreatedAt,
|
||||||
|
&i.UpdatedAt,
|
||||||
|
&i.DeletedAt,
|
||||||
|
&i.Address,
|
||||||
|
&i.Handle,
|
||||||
|
&i.Origin,
|
||||||
|
&i.Name,
|
||||||
|
)
|
||||||
|
return i, err
|
||||||
|
}
|
||||||
|
|
||||||
|
const getProfileByID = `-- name: GetProfileByID :one
|
||||||
|
SELECT id, created_at, updated_at, deleted_at, address, handle, origin, name FROM profiles
|
||||||
|
WHERE id = ? AND deleted_at IS NULL
|
||||||
|
LIMIT 1
|
||||||
|
`
|
||||||
|
|
||||||
|
func (q *Queries) GetProfileByID(ctx context.Context, id string) (Profile, error) {
|
||||||
|
row := q.db.QueryRowContext(ctx, getProfileByID, id)
|
||||||
|
var i Profile
|
||||||
|
err := row.Scan(
|
||||||
|
&i.ID,
|
||||||
|
&i.CreatedAt,
|
||||||
|
&i.UpdatedAt,
|
||||||
|
&i.DeletedAt,
|
||||||
|
&i.Address,
|
||||||
|
&i.Handle,
|
||||||
|
&i.Origin,
|
||||||
|
&i.Name,
|
||||||
|
)
|
||||||
|
return i, err
|
||||||
|
}
|
||||||
|
|
||||||
|
const getSessionByClientIP = `-- name: GetSessionByClientIP :one
|
||||||
|
SELECT id, created_at, updated_at, deleted_at, browser_name, browser_version, client_ipaddr, platform, is_desktop, is_mobile, is_tablet, is_tv, is_bot, challenge, is_human_first, is_human_last, profile_id FROM sessions
|
||||||
|
WHERE client_ipaddr = ? AND deleted_at IS NULL
|
||||||
|
LIMIT 1
|
||||||
|
`
|
||||||
|
|
||||||
|
func (q *Queries) GetSessionByClientIP(ctx context.Context, clientIpaddr string) (Session, error) {
|
||||||
|
row := q.db.QueryRowContext(ctx, getSessionByClientIP, clientIpaddr)
|
||||||
|
var i Session
|
||||||
|
err := row.Scan(
|
||||||
|
&i.ID,
|
||||||
|
&i.CreatedAt,
|
||||||
|
&i.UpdatedAt,
|
||||||
|
&i.DeletedAt,
|
||||||
|
&i.BrowserName,
|
||||||
|
&i.BrowserVersion,
|
||||||
|
&i.ClientIpaddr,
|
||||||
|
&i.Platform,
|
||||||
|
&i.IsDesktop,
|
||||||
|
&i.IsMobile,
|
||||||
|
&i.IsTablet,
|
||||||
|
&i.IsTv,
|
||||||
|
&i.IsBot,
|
||||||
|
&i.Challenge,
|
||||||
|
&i.IsHumanFirst,
|
||||||
|
&i.IsHumanLast,
|
||||||
|
&i.ProfileID,
|
||||||
|
)
|
||||||
|
return i, err
|
||||||
|
}
|
||||||
|
|
||||||
|
const getSessionByID = `-- name: GetSessionByID :one
|
||||||
|
SELECT id, created_at, updated_at, deleted_at, browser_name, browser_version, client_ipaddr, platform, is_desktop, is_mobile, is_tablet, is_tv, is_bot, challenge, is_human_first, is_human_last, profile_id FROM sessions
|
||||||
|
WHERE id = ? AND deleted_at IS NULL
|
||||||
|
LIMIT 1
|
||||||
|
`
|
||||||
|
|
||||||
|
func (q *Queries) GetSessionByID(ctx context.Context, id string) (Session, error) {
|
||||||
|
row := q.db.QueryRowContext(ctx, getSessionByID, id)
|
||||||
|
var i Session
|
||||||
|
err := row.Scan(
|
||||||
|
&i.ID,
|
||||||
|
&i.CreatedAt,
|
||||||
|
&i.UpdatedAt,
|
||||||
|
&i.DeletedAt,
|
||||||
|
&i.BrowserName,
|
||||||
|
&i.BrowserVersion,
|
||||||
|
&i.ClientIpaddr,
|
||||||
|
&i.Platform,
|
||||||
|
&i.IsDesktop,
|
||||||
|
&i.IsMobile,
|
||||||
|
&i.IsTablet,
|
||||||
|
&i.IsTv,
|
||||||
|
&i.IsBot,
|
||||||
|
&i.Challenge,
|
||||||
|
&i.IsHumanFirst,
|
||||||
|
&i.IsHumanLast,
|
||||||
|
&i.ProfileID,
|
||||||
|
)
|
||||||
|
return i, err
|
||||||
|
}
|
||||||
|
|
||||||
|
const getVaultConfigByCID = `-- name: GetVaultConfigByCID :one
|
||||||
|
SELECT id, created_at, updated_at, deleted_at, handle, origin, address, cid, config, session_id, redirect_uri FROM vaults
|
||||||
|
WHERE cid = ?
|
||||||
|
AND deleted_at IS NULL
|
||||||
|
LIMIT 1
|
||||||
|
`
|
||||||
|
|
||||||
|
func (q *Queries) GetVaultConfigByCID(ctx context.Context, cid string) (Vault, error) {
|
||||||
|
row := q.db.QueryRowContext(ctx, getVaultConfigByCID, cid)
|
||||||
|
var i Vault
|
||||||
|
err := row.Scan(
|
||||||
|
&i.ID,
|
||||||
|
&i.CreatedAt,
|
||||||
|
&i.UpdatedAt,
|
||||||
|
&i.DeletedAt,
|
||||||
|
&i.Handle,
|
||||||
|
&i.Origin,
|
||||||
|
&i.Address,
|
||||||
|
&i.Cid,
|
||||||
|
&i.Config,
|
||||||
|
&i.SessionID,
|
||||||
|
&i.RedirectUri,
|
||||||
|
)
|
||||||
|
return i, err
|
||||||
|
}
|
||||||
|
|
||||||
|
const getVaultRedirectURIBySessionID = `-- name: GetVaultRedirectURIBySessionID :one
|
||||||
|
SELECT redirect_uri FROM vaults
|
||||||
|
WHERE session_id = ?
|
||||||
|
AND deleted_at IS NULL
|
||||||
|
LIMIT 1
|
||||||
|
`
|
||||||
|
|
||||||
|
func (q *Queries) GetVaultRedirectURIBySessionID(ctx context.Context, sessionID string) (string, error) {
|
||||||
|
row := q.db.QueryRowContext(ctx, getVaultRedirectURIBySessionID, sessionID)
|
||||||
|
var redirect_uri string
|
||||||
|
err := row.Scan(&redirect_uri)
|
||||||
|
return redirect_uri, err
|
||||||
|
}
|
||||||
|
|
||||||
|
const insertCredential = `-- name: InsertCredential :one
|
||||||
|
INSERT INTO credentials (
|
||||||
|
handle,
|
||||||
|
credential_id,
|
||||||
|
origin,
|
||||||
|
type,
|
||||||
|
transports
|
||||||
|
) VALUES (?, ?, ?, ?, ?)
|
||||||
|
RETURNING id, created_at, updated_at, deleted_at, handle, credential_id, authenticator_attachment, origin, type, transports
|
||||||
|
`
|
||||||
|
|
||||||
|
type InsertCredentialParams struct {
|
||||||
|
Handle string `json:"handle"`
|
||||||
|
CredentialID string `json:"credential_id"`
|
||||||
|
Origin string `json:"origin"`
|
||||||
|
Type string `json:"type"`
|
||||||
|
Transports string `json:"transports"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (q *Queries) InsertCredential(ctx context.Context, arg InsertCredentialParams) (Credential, error) {
|
||||||
|
row := q.db.QueryRowContext(ctx, insertCredential,
|
||||||
|
arg.Handle,
|
||||||
|
arg.CredentialID,
|
||||||
|
arg.Origin,
|
||||||
|
arg.Type,
|
||||||
|
arg.Transports,
|
||||||
|
)
|
||||||
|
var i Credential
|
||||||
|
err := row.Scan(
|
||||||
|
&i.ID,
|
||||||
|
&i.CreatedAt,
|
||||||
|
&i.UpdatedAt,
|
||||||
|
&i.DeletedAt,
|
||||||
|
&i.Handle,
|
||||||
|
&i.CredentialID,
|
||||||
|
&i.AuthenticatorAttachment,
|
||||||
|
&i.Origin,
|
||||||
|
&i.Type,
|
||||||
|
&i.Transports,
|
||||||
|
)
|
||||||
|
return i, err
|
||||||
|
}
|
||||||
|
|
||||||
|
const insertProfile = `-- name: InsertProfile :one
|
||||||
|
INSERT INTO profiles (
|
||||||
|
address,
|
||||||
|
handle,
|
||||||
|
origin,
|
||||||
|
name
|
||||||
|
) VALUES (?, ?, ?, ?)
|
||||||
|
RETURNING id, created_at, updated_at, deleted_at, address, handle, origin, name
|
||||||
|
`
|
||||||
|
|
||||||
|
type InsertProfileParams struct {
|
||||||
|
Address string `json:"address"`
|
||||||
|
Handle string `json:"handle"`
|
||||||
|
Origin string `json:"origin"`
|
||||||
|
Name string `json:"name"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (q *Queries) InsertProfile(ctx context.Context, arg InsertProfileParams) (Profile, error) {
|
||||||
|
row := q.db.QueryRowContext(ctx, insertProfile,
|
||||||
|
arg.Address,
|
||||||
|
arg.Handle,
|
||||||
|
arg.Origin,
|
||||||
|
arg.Name,
|
||||||
|
)
|
||||||
|
var i Profile
|
||||||
|
err := row.Scan(
|
||||||
|
&i.ID,
|
||||||
|
&i.CreatedAt,
|
||||||
|
&i.UpdatedAt,
|
||||||
|
&i.DeletedAt,
|
||||||
|
&i.Address,
|
||||||
|
&i.Handle,
|
||||||
|
&i.Origin,
|
||||||
|
&i.Name,
|
||||||
|
)
|
||||||
|
return i, err
|
||||||
|
}
|
||||||
|
|
||||||
|
const softDeleteCredential = `-- name: SoftDeleteCredential :exec
|
||||||
|
UPDATE credentials
|
||||||
|
SET deleted_at = CURRENT_TIMESTAMP
|
||||||
|
WHERE credential_id = ?
|
||||||
|
`
|
||||||
|
|
||||||
|
func (q *Queries) SoftDeleteCredential(ctx context.Context, credentialID string) error {
|
||||||
|
_, err := q.db.ExecContext(ctx, softDeleteCredential, credentialID)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
const softDeleteProfile = `-- name: SoftDeleteProfile :exec
|
||||||
|
UPDATE profiles
|
||||||
|
SET deleted_at = CURRENT_TIMESTAMP
|
||||||
|
WHERE address = ?
|
||||||
|
`
|
||||||
|
|
||||||
|
func (q *Queries) SoftDeleteProfile(ctx context.Context, address string) error {
|
||||||
|
_, err := q.db.ExecContext(ctx, softDeleteProfile, address)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
const updateProfile = `-- name: UpdateProfile :one
|
||||||
|
UPDATE profiles
|
||||||
|
SET
|
||||||
|
name = ?,
|
||||||
|
handle = ?,
|
||||||
|
updated_at = CURRENT_TIMESTAMP
|
||||||
|
WHERE address = ?
|
||||||
|
AND deleted_at IS NULL
|
||||||
|
RETURNING id, created_at, updated_at, deleted_at, address, handle, origin, name
|
||||||
|
`
|
||||||
|
|
||||||
|
type UpdateProfileParams struct {
|
||||||
|
Name string `json:"name"`
|
||||||
|
Handle string `json:"handle"`
|
||||||
|
Address string `json:"address"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (q *Queries) UpdateProfile(ctx context.Context, arg UpdateProfileParams) (Profile, error) {
|
||||||
|
row := q.db.QueryRowContext(ctx, updateProfile, arg.Name, arg.Handle, arg.Address)
|
||||||
|
var i Profile
|
||||||
|
err := row.Scan(
|
||||||
|
&i.ID,
|
||||||
|
&i.CreatedAt,
|
||||||
|
&i.UpdatedAt,
|
||||||
|
&i.DeletedAt,
|
||||||
|
&i.Address,
|
||||||
|
&i.Handle,
|
||||||
|
&i.Origin,
|
||||||
|
&i.Name,
|
||||||
|
)
|
||||||
|
return i, err
|
||||||
|
}
|
||||||
|
|
||||||
|
const updateSessionHumanVerification = `-- name: UpdateSessionHumanVerification :one
|
||||||
|
UPDATE sessions
|
||||||
|
SET
|
||||||
|
is_human_first = ?,
|
||||||
|
is_human_last = ?,
|
||||||
|
updated_at = CURRENT_TIMESTAMP
|
||||||
|
WHERE id = ?
|
||||||
|
RETURNING id, created_at, updated_at, deleted_at, browser_name, browser_version, client_ipaddr, platform, is_desktop, is_mobile, is_tablet, is_tv, is_bot, challenge, is_human_first, is_human_last, profile_id
|
||||||
|
`
|
||||||
|
|
||||||
|
type UpdateSessionHumanVerificationParams struct {
|
||||||
|
IsHumanFirst bool `json:"is_human_first"`
|
||||||
|
IsHumanLast bool `json:"is_human_last"`
|
||||||
|
ID string `json:"id"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (q *Queries) UpdateSessionHumanVerification(ctx context.Context, arg UpdateSessionHumanVerificationParams) (Session, error) {
|
||||||
|
row := q.db.QueryRowContext(ctx, updateSessionHumanVerification, arg.IsHumanFirst, arg.IsHumanLast, arg.ID)
|
||||||
|
var i Session
|
||||||
|
err := row.Scan(
|
||||||
|
&i.ID,
|
||||||
|
&i.CreatedAt,
|
||||||
|
&i.UpdatedAt,
|
||||||
|
&i.DeletedAt,
|
||||||
|
&i.BrowserName,
|
||||||
|
&i.BrowserVersion,
|
||||||
|
&i.ClientIpaddr,
|
||||||
|
&i.Platform,
|
||||||
|
&i.IsDesktop,
|
||||||
|
&i.IsMobile,
|
||||||
|
&i.IsTablet,
|
||||||
|
&i.IsTv,
|
||||||
|
&i.IsBot,
|
||||||
|
&i.Challenge,
|
||||||
|
&i.IsHumanFirst,
|
||||||
|
&i.IsHumanLast,
|
||||||
|
&i.ProfileID,
|
||||||
|
)
|
||||||
|
return i, err
|
||||||
|
}
|
||||||
|
|
||||||
|
const updateSessionWithProfileID = `-- name: UpdateSessionWithProfileID :one
|
||||||
|
UPDATE sessions
|
||||||
|
SET
|
||||||
|
profile_id = ?,
|
||||||
|
updated_at = CURRENT_TIMESTAMP
|
||||||
|
WHERE id = ?
|
||||||
|
RETURNING id, created_at, updated_at, deleted_at, browser_name, browser_version, client_ipaddr, platform, is_desktop, is_mobile, is_tablet, is_tv, is_bot, challenge, is_human_first, is_human_last, profile_id
|
||||||
|
`
|
||||||
|
|
||||||
|
type UpdateSessionWithProfileIDParams struct {
|
||||||
|
ProfileID int64 `json:"profile_id"`
|
||||||
|
ID string `json:"id"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (q *Queries) UpdateSessionWithProfileID(ctx context.Context, arg UpdateSessionWithProfileIDParams) (Session, error) {
|
||||||
|
row := q.db.QueryRowContext(ctx, updateSessionWithProfileID, arg.ProfileID, arg.ID)
|
||||||
|
var i Session
|
||||||
|
err := row.Scan(
|
||||||
|
&i.ID,
|
||||||
|
&i.CreatedAt,
|
||||||
|
&i.UpdatedAt,
|
||||||
|
&i.DeletedAt,
|
||||||
|
&i.BrowserName,
|
||||||
|
&i.BrowserVersion,
|
||||||
|
&i.ClientIpaddr,
|
||||||
|
&i.Platform,
|
||||||
|
&i.IsDesktop,
|
||||||
|
&i.IsMobile,
|
||||||
|
&i.IsTablet,
|
||||||
|
&i.IsTv,
|
||||||
|
&i.IsBot,
|
||||||
|
&i.Challenge,
|
||||||
|
&i.IsHumanFirst,
|
||||||
|
&i.IsHumanLast,
|
||||||
|
&i.ProfileID,
|
||||||
|
)
|
||||||
|
return i, err
|
||||||
|
}
|
@ -4,7 +4,7 @@ import (
|
|||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
|
||||||
"github.com/ipfs/boxo/files"
|
"github.com/ipfs/boxo/files"
|
||||||
"github.com/onsonr/sonr/internal/config/motr"
|
motr "github.com/onsonr/motr/internal/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
const SchemaVersion = 1
|
const SchemaVersion = 1
|
Loading…
x
Reference in New Issue
Block a user