This commit is contained in:
132
internal/db/local.go
Normal file
132
internal/db/local.go
Normal file
@@ -0,0 +1,132 @@
|
||||
package db
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"os"
|
||||
)
|
||||
|
||||
var localDB []Token
|
||||
|
||||
type Token struct {
|
||||
Token string `json:"token"`
|
||||
DedupObject string `json:"dedup_object"`
|
||||
DataFormat string `json:"data_format"`
|
||||
Notes string `json:"notes"`
|
||||
}
|
||||
|
||||
func InitLocalDB() {
|
||||
start:
|
||||
data, err := os.ReadFile("./token.json")
|
||||
if os.IsNotExist(err) {
|
||||
os.WriteFile("./token.json", []byte("[]"), 0644)
|
||||
goto start
|
||||
} else if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
|
||||
err = json.Unmarshal(data, &localDB)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
}
|
||||
|
||||
func CheckToken(token string) bool {
|
||||
InitLocalDB()
|
||||
for _, t := range localDB {
|
||||
if t.Token == token {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func ListToken() []Token {
|
||||
InitLocalDB()
|
||||
return localDB
|
||||
}
|
||||
|
||||
func CreateToken(token string, dedupObject string, dataFormat string, Notes string) error {
|
||||
InitLocalDB()
|
||||
for _, t := range localDB {
|
||||
if t.Token == token {
|
||||
return errors.New("token已经存在")
|
||||
}
|
||||
}
|
||||
|
||||
a := append(localDB, Token{token, dedupObject, dataFormat, Notes})
|
||||
marshal, err := json.Marshal(a)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if err := os.WriteFile("./token.json", marshal, 0644); err != nil {
|
||||
return err
|
||||
}
|
||||
InitLocalDB()
|
||||
return nil
|
||||
}
|
||||
|
||||
func UpdateToken(token string, dedupObject string, dataFormat string, Notes string) error {
|
||||
InitLocalDB()
|
||||
|
||||
for i, t := range localDB {
|
||||
if t.Token == token {
|
||||
localDB[i].DedupObject = dedupObject
|
||||
localDB[i].DataFormat = dataFormat
|
||||
localDB[i].Notes = Notes
|
||||
|
||||
marshal, err := json.Marshal(localDB)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if err := os.WriteFile("./token.json", marshal, 0644); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
InitLocalDB()
|
||||
return errors.New("token not found")
|
||||
}
|
||||
|
||||
func DeleteToken(token string) error {
|
||||
InitLocalDB()
|
||||
|
||||
for i, t := range localDB {
|
||||
if t.Token == token {
|
||||
localDB = append(localDB[:i], localDB[i+1:]...)
|
||||
|
||||
marshal, err := json.Marshal(localDB)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if err := os.WriteFile("./token.json", marshal, 0644); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
InitLocalDB()
|
||||
return errors.New("token not found")
|
||||
}
|
||||
|
||||
func GetDedupObject(token string) (dedupObject string, err error) {
|
||||
for i, t := range localDB {
|
||||
if t.Token == token {
|
||||
return localDB[i].DedupObject, nil
|
||||
}
|
||||
}
|
||||
return "", errors.New("未找到Token")
|
||||
}
|
||||
|
||||
func GetDataFormat(token string) (dataFormat string, err error) {
|
||||
for i, t := range localDB {
|
||||
if t.Token == token {
|
||||
return localDB[i].DataFormat, nil
|
||||
}
|
||||
}
|
||||
return "", errors.New("未找到Token")
|
||||
}
|
||||
Reference in New Issue
Block a user