208 lines
3.6 KiB
Go
208 lines
3.6 KiB
Go
package services
|
|
|
|
import (
|
|
"context"
|
|
|
|
"git.gnous.eu/Rick/calendrier/models"
|
|
)
|
|
|
|
// name est le nom du créateur du calendrier
|
|
func CreateEvent(e *models.Event, name string) error {
|
|
ctx := context.Background()
|
|
db := get()
|
|
user, _ := GetUserByName(name)
|
|
|
|
_, err := db.NewInsert().Model(e).Exec(ctx)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
tmp := map[string]interface{}{"event_id": e.Id, "user_id": user.Id, "can_write": true, "is_owner": true}
|
|
_, err = db.NewInsert().Model(&tmp).Table("user_in_event").Exec(ctx)
|
|
|
|
return err
|
|
}
|
|
|
|
/*
|
|
func GetEventById(id int) (models.Event, error) {
|
|
ctx := context.Background()
|
|
conn, err := get()
|
|
defer close(conn)
|
|
|
|
res := new(models.Event)
|
|
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
err = conn.QueryRow(ctx, "select * from event where id = $1", id).Scan(&res.Id, &res.DateFrom, &res.DateTo, &res.Name, &res.Site, &res.Creator)
|
|
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return *res, nil
|
|
}
|
|
|
|
func GetEventsByCalendar(calendar_id int) ([]models.Event, error) {
|
|
ctx := context.Background()
|
|
conn, err := get()
|
|
defer close(conn)
|
|
|
|
var res []models.Event
|
|
|
|
if err != nil {
|
|
return res, err
|
|
}
|
|
|
|
rows, err = conn.Query(ctx, "select events* from event, event_in_calendar where calendar_id = $1 and even_id = id", user_id)
|
|
|
|
if err != nil {
|
|
return res, err
|
|
}
|
|
|
|
tmp := new(models.Event)
|
|
for rows.Next() {
|
|
err = rows.Scan(&tmp.Id, &tmp.DateFrom, &tmp.DateTo, &tmp.Name, &tmp.Site, &tmp.Creator)
|
|
|
|
if err != nil {
|
|
return res, err
|
|
}
|
|
|
|
if res != nil {
|
|
res = append(res, *tmp)
|
|
} else {
|
|
res = []models.Event{*tmp}
|
|
}
|
|
}
|
|
|
|
return res, nil
|
|
}
|
|
|
|
func GetEventsByCreator(user_id int) ([]models.Event, error) {
|
|
ctx := context.Background()
|
|
conn, err := get()
|
|
defer close(conn)
|
|
|
|
var res []models.Event
|
|
|
|
if err != nil {
|
|
return res, err
|
|
}
|
|
|
|
rows, err = conn.Query(ctx, "select * from event where creator = $1", user_id)
|
|
|
|
if err != nil {
|
|
return res, err
|
|
}
|
|
|
|
tmp := new(models.Event)
|
|
for rows.Next() {
|
|
err = rows.Scan(&tmp.Id, &tmp.DateFrom, &tmp.DateTo, &tmp.Name, &tmp.Site, &tmp.Creator)
|
|
|
|
if err != nil {
|
|
return res, err
|
|
}
|
|
|
|
if res != nil {
|
|
res = append(res, *tmp)
|
|
} else {
|
|
res = []models.Event{*tmp}
|
|
}
|
|
}
|
|
|
|
return res, nil
|
|
}
|
|
|
|
func GetEventsByFromDate(from_date int) ([]models.Event, error) {
|
|
ctx := context.Background()
|
|
conn, err := get()
|
|
defer close(conn)
|
|
|
|
var res []models.Event
|
|
|
|
if err != nil {
|
|
return res, err
|
|
}
|
|
|
|
rows, err = conn.Query(ctx, "select * from event where date_from >= $1", from_date)
|
|
|
|
if err != nil {
|
|
return res, err
|
|
}
|
|
|
|
tmp := new(models.Event)
|
|
for rows.Next() {
|
|
err = rows.Scan(&tmp.Id, &tmp.DateFrom, &tmp.DateTo, &tmp.Name, &tmp.Site, &tmp.Creator)
|
|
|
|
if err != nil {
|
|
return res, err
|
|
}
|
|
|
|
if res != nil {
|
|
res = append(res, *tmp)
|
|
} else {
|
|
res = []models.Event{*tmp}
|
|
}
|
|
}
|
|
|
|
return res, nil
|
|
}
|
|
|
|
func UpdateEvent(e *models.Event) error {
|
|
ctx := context.Background()
|
|
conn, err := get()
|
|
defer close(conn)
|
|
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
tx, err := conn.Begin(ctx)
|
|
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
_, err = tx.Exec(ctx, "insert into calendar (name, url, creator, is_public) values ($1, $2, $3, $4)", c.Name, c.Url, c.Creator, c.IsPublic)
|
|
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
tx.Commit(ctx)
|
|
return nil
|
|
}
|
|
|
|
func DeleteEvent(id int) error {
|
|
ctx := context.Background()
|
|
conn, err := get()
|
|
defer close(conn)
|
|
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
tx, err := conn.Begin(ctx)
|
|
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
_, err := tx.Exec(ctx, "delete from event where id = $1", id)
|
|
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
_, err := tx.Exec(ctx, "delete from event_in_calendar where event_id = $1", id)
|
|
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
tx.Commit(ctx)
|
|
return nil
|
|
}
|
|
*/
|