Improve log a bit
This commit is contained in:
parent
c5a5dbd80b
commit
6ad28b714b
4 changed files with 14 additions and 10 deletions
|
@ -1,7 +1,8 @@
|
||||||
# 🌺 Hibiscus.txt
|
# 🌺 Hibiscus.txt
|
||||||
|
|
||||||
Simple plaintext journaling server. One file a day.
|
Simple plaintext diary.
|
||||||
|
|
||||||
## Features:
|
## Features:
|
||||||
* Lack of features. No, really.
|
* Lack of features. No, really.
|
||||||
* Does one thing and does it... decently?
|
* Does one thing and does it... decently?
|
||||||
|
* Intention to eventually go dependency-less. Sorry chi, I still like you!
|
10
files.go
10
files.go
|
@ -11,15 +11,15 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
var DEFAULT_EXTENSION = "txt"
|
|
||||||
|
|
||||||
func GetFile(filename string, w http.ResponseWriter, r *http.Request) {
|
func GetFile(filename string, w http.ResponseWriter, r *http.Request) {
|
||||||
if _, err := os.Stat("data/" + filename + ".txt"); errors.Is(err, os.ErrNotExist) {
|
path := "data/" + filepath.Base(filename) + ".txt" // This should *theoretically* sanitize the string
|
||||||
|
|
||||||
|
if _, err := os.Stat(path); errors.Is(err, os.ErrNotExist) {
|
||||||
NotFound(w, r)
|
NotFound(w, r)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
fileContents, err := os.ReadFile("data/" + filename + ".txt")
|
fileContents, err := os.ReadFile(path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
http.Error(w, "error reading file", http.StatusInternalServerError)
|
http.Error(w, "error reading file", http.StatusInternalServerError)
|
||||||
return
|
return
|
||||||
|
@ -58,7 +58,7 @@ func PostFile(filename string, w http.ResponseWriter, r *http.Request) {
|
||||||
w.WriteHeader(http.StatusOK)
|
w.WriteHeader(http.StatusOK)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ListFiles returns JSON of filenames in a directory without extensions or path
|
// ListFiles returns JSON list of filenames in a directory without extensions or path
|
||||||
func ListFiles(directory string, w http.ResponseWriter, r *http.Request) {
|
func ListFiles(directory string, w http.ResponseWriter, r *http.Request) {
|
||||||
filenames, err := filepath.Glob("data/" + directory + "/*.txt")
|
filenames, err := filepath.Glob("data/" + directory + "/*.txt")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
7
log.go
7
log.go
|
@ -5,10 +5,12 @@ import (
|
||||||
"io"
|
"io"
|
||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
func AppendLog(input string) error {
|
// AppendLog adds the input string to the end of the log file with a timestamp
|
||||||
|
func appendLog(input string) error {
|
||||||
t := time.Now().Format("02-01-2006 15:04") // dd-mm-yyyy HH:MM
|
t := time.Now().Format("02-01-2006 15:04") // dd-mm-yyyy HH:MM
|
||||||
|
|
||||||
f, err := os.OpenFile("./data/log.txt", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
|
f, err := os.OpenFile("./data/log.txt", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
|
||||||
|
@ -17,6 +19,7 @@ func AppendLog(input string) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
input = strings.Replace(input, "\n", "", -1) // Remove newlines to maintain structure
|
||||||
if _, err := f.Write([]byte(t + " | " + input + "\n")); err != nil {
|
if _, err := f.Write([]byte(t + " | " + input + "\n")); err != nil {
|
||||||
fmt.Println("Error appending to the file")
|
fmt.Println("Error appending to the file")
|
||||||
return err
|
return err
|
||||||
|
@ -35,7 +38,7 @@ func PostLog(w http.ResponseWriter, r *http.Request) {
|
||||||
w.Write([]byte("error reading body"))
|
w.Write([]byte("error reading body"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
err = AppendLog(string(body))
|
err = appendLog(string(body))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
w.WriteHeader(http.StatusInternalServerError)
|
w.WriteHeader(http.StatusInternalServerError)
|
||||||
w.Write([]byte("error appending to log"))
|
w.Write([]byte("error appending to log"))
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
curl -XPOST -d 'need to \n remove newlines \n' -u 'test:pass' 'localhost:7101/log'
|
curl -XPOST -d "test" -eu 'test:pass' 'localhost:7101/api/log'
|
Loading…
Reference in a new issue