47 lines
970 B
Go
47 lines
970 B
Go
package localdb
|
|
|
|
import (
|
|
common "access-manager-api/app/common"
|
|
"encoding/json"
|
|
"fmt"
|
|
"net/http"
|
|
"os"
|
|
)
|
|
|
|
type DB struct {
|
|
data map[string]common.Pool
|
|
}
|
|
|
|
func LoadDB(localDBPath string) (DB, error) {
|
|
db := DB{}
|
|
content, err := os.ReadFile(localDBPath)
|
|
if err != nil {
|
|
//log.Fatal("Error when opening file: ", err)
|
|
return db, err
|
|
}
|
|
err = json.Unmarshal(content, &db.data)
|
|
if err != nil {
|
|
//log.Fatal("Error during Unmarshal(): ", err)
|
|
return db, err
|
|
}
|
|
return db, nil
|
|
}
|
|
|
|
func SaveDB(localDBPath string, db DB) error {
|
|
json, err := json.Marshal(db.data)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
err = os.WriteFile(localDBPath, []byte(json), 0644)
|
|
return err
|
|
}
|
|
|
|
func (localdb DB) GetPool(poolname string) (common.Pool, []string, int, error) {
|
|
pool := common.Pool{}
|
|
pool, ok := localdb.data[poolname]
|
|
if !ok {
|
|
return pool, []string{}, http.StatusNotFound, fmt.Errorf("Pool %s not in localdb", poolname)
|
|
}
|
|
return pool, []string{}, http.StatusOK, nil
|
|
}
|