Error handling / rename / ordered queries

1. error handling for all routes & models function
2. rename scripts -> queries
3. use [][2]string instead of map[string]string to provide ordered
   queries list
This commit is contained in:
Wancat
2022-11-17 17:50:55 +08:00
parent a6510b34a4
commit 0cdc6bec24
7 changed files with 48 additions and 39 deletions

View File

@@ -5,7 +5,7 @@ import (
"bytes"
"fmt"
"io"
"log"
"io/ioutil"
"os"
"os/exec"
"path"
@@ -54,7 +54,7 @@ func (u *User) WriteFile(name string) (*os.File, error) {
func (u *User) List() ([]string, error) {
files, err := os.ReadDir(u.Dir())
if err != nil {
panic(err)
return []string{}, fmt.Errorf("Failed to open directory: %w", err)
}
result := make([]string, len(files))
for i, v := range files {
@@ -63,6 +63,16 @@ func (u *User) List() ([]string, error) {
return result, nil
}
func (u *User) readAllFile(name string) (data []byte, err error) {
f, err := u.ReadFile(name)
if err != nil {
return
}
defer f.Close()
data, err = ioutil.ReadAll(f)
return
}
func (u *User) appendToFile(tx string) (err error) {
f, err := u.AppendFile(DEFAULT_JOURNAL)
if err != nil {
@@ -99,24 +109,24 @@ func (u *User) query(query string) (result string, err error) {
return buf.String(), err
}
func (u *User) scripts() (scripts map[string]string, err error) {
f, err := u.ReadFile(SCRIPTS_FILE)
func (u *User) queries() (queries [][2]string, err error) {
f, err := u.ReadFile(QUERIES_FILE)
if err != nil {
panic(err)
err = fmt.Errorf("Failed to read queries file: %w", err)
return
}
defer f.Close()
fileScanner := bufio.NewScanner(f)
fileScanner.Split(bufio.ScanLines)
scripts = make(map[string]string)
queries = make([][2]string, 0)
for fileScanner.Scan() {
arr := strings.SplitN(fileScanner.Text(), ":", 2)
if len(arr) < 2 {
err = fmt.Errorf("invalid data %s", arr)
return
continue
}
scripts[arr[0]] = arr[1]
queries = append(queries, [2]string{arr[0], arr[1]})
}
return
}
@@ -131,7 +141,6 @@ func (u *User) templates() (templates []string, err error) {
templates = append(templates, v)
}
}
log.Println(templates)
return
}