Compare commits

...

8 Commits
main ... lukas

Author SHA1 Message Date
b500d8acbb postgres init started 2024-01-10 13:59:15 +01:00
3c7c56c7ae removed init dir 2023-12-04 15:10:53 +01:00
abdba6f958 structured a bit more 2023-12-04 15:09:54 +01:00
fe92837134 deleted test.go 2023-12-04 14:46:06 +01:00
fa8285697e README first line 2023-12-04 14:42:28 +01:00
25df36d24f basefiles for structure 2023-12-04 14:40:02 +01:00
c1125da746 structrue, logger, main.go 2023-12-04 14:32:48 +01:00
766b717f83 README.md added 2023-11-29 20:20:47 +01:00
10 changed files with 141 additions and 55 deletions

1
README.md Normal file
View File

@ -0,0 +1 @@
# Backend for DataLogue

9
api/server.go Normal file
View File

@ -0,0 +1,9 @@
package api
import "git.cmdq.io/meirjann/DataLogue-Backend/log"
var logger = log.New("api")
func Serve() {
logger.Println("starting server...")
}

9
configs/init.go Normal file
View File

@ -0,0 +1,9 @@
package configs
import "git.cmdq.io/meirjann/DataLogue-Backend/log"
var logger = log.New("init")
func Init() {
logger.Println("initializing...")
}

67
db/pq/init.go Normal file
View File

@ -0,0 +1,67 @@
package pq
import (
"database/sql"
"errors"
"fmt"
"git.cmdq.io/meirjann/DataLogue-Backend/log"
_ "github.com/lib/pq"
)
type pqClient struct {
c *sql.DB
}
var (
logger = log.New("db")
db = &pqClient{}
)
const (
DB_HOST = "localhost"
DB_NAME = "dataloguewdawd"
DB_PASS = "datalogueawdawd"
DB_USER = "datalogueawdawd"
)
func Init() error {
c, err := initConn()
if err != nil {
return err
}
db.c = c
err = checkOrCreateTables()
if err != nil {
return err
}
return nil
}
func initConn() (*sql.DB, error) {
connStr := fmt.Sprintf("postgres://%s:%s@%s/%s?sslmode=verify-full", DB_USER, DB_PASS, DB_HOST, DB_NAME)
db, err := sql.Open("postgres", connStr)
if err != nil {
return nil, err
}
logger.Println("connection to postgres db established")
return db, nil
}
func CloseConn() error {
if db.c != nil {
err := db.c.Close()
if err != nil {
return err
}
logger.Println("connection to postgres db closed")
return nil
}
return errors.New("postgres connection nil, could not close")
}
func checkOrCreateTables() error {
return nil
}

0
db/redis/init.go Normal file
View File

5
go.mod Normal file
View File

@ -0,0 +1,5 @@
module git.cmdq.io/meirjann/DataLogue-Backend
go 1.21.4
require github.com/lib/pq v1.10.9

2
go.sum Normal file
View File

@ -0,0 +1,2 @@
github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw=
github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=

24
log/logger.go Normal file
View File

@ -0,0 +1,24 @@
package log
import (
"io"
"log"
"os"
"time"
)
type writer struct {
io.Writer
timeFormat string
}
func (w writer) Write(b []byte) (n int, err error) {
return w.Writer.Write(append([]byte(time.Now().Format(w.timeFormat)), b...))
}
func New(msg string) *log.Logger {
if len(msg) > 0 {
return log.New(&writer{os.Stdout, "2006/01/02 15:04:05 "}, "["+msg+"] \t", 0)
}
return log.New(&writer{os.Stdout, "2006/01/02 15:04:05 "}, "[info] \t", 0)
}

24
main.go Normal file
View File

@ -0,0 +1,24 @@
package main
import (
"git.cmdq.io/meirjann/DataLogue-Backend/api"
"git.cmdq.io/meirjann/DataLogue-Backend/configs"
"git.cmdq.io/meirjann/DataLogue-Backend/db/pq"
"git.cmdq.io/meirjann/DataLogue-Backend/log"
)
var logger = log.New("startup")
func main() {
logger.Println("starting...")
// set all configs
configs.Init()
// init db
err := pq.Init()
if err != nil {
panic(err)
}
defer pq.CloseConn()
// start api
api.Serve()
}

55
test.go
View File

@ -1,55 +0,0 @@
package main
import (
"fmt"
"log"
"os"
"sync"
"time"
)
func sendA(ch chan string) {
fmt.Println("start waiting A")
time.Sleep(20 * time.Second)
fmt.Println("end waiting A")
ch <- "a"
close(ch)
}
func sendB(ch chan string) {
fmt.Println("start waiting B")
time.Sleep(10 * time.Second)
fmt.Println("end waiting B")
ch <- "b"
close(ch)
}
func main() {
if err := os.Chdir(""); err != nil {
fmt.Println("didn't change directory")
}
wg := sync.WaitGroup{}
wg.Add(2)
chA := make(chan string)
chB := make(chan string)
fmt.Println("start sendA")
go sendA(chA)
fmt.Println("start sendB")
go sendB(chB)
fmt.Println("start printing A")
go printCock(chA, &wg)
fmt.Println("start printing B")
go printCock(chB, &wg)
wg.Wait()
}
func printCock(ch chan string, wg *sync.WaitGroup) {
for {
select {
case x := <-ch:
log.Println(x)
wg.Done()
return
}
}
}