mirror of
https://github.com/Unkn0wnCat/calapi.git
synced 2025-04-28 17:46:19 +02:00
205 lines
5.9 KiB
Go
205 lines
5.9 KiB
Go
package graph
|
|
|
|
// This file will be automatically regenerated based on the schema, any resolver implementations
|
|
// will be copied through when generating and any unknown code will be moved to the end.
|
|
// Code generated by github.com/99designs/gqlgen version v0.17.24
|
|
|
|
import (
|
|
"context"
|
|
"errors"
|
|
"fmt"
|
|
"github.com/Unkn0wnCat/calapi/internal/database"
|
|
"github.com/Unkn0wnCat/calapi/internal/db_model"
|
|
"github.com/objectbox/objectbox-go/objectbox"
|
|
"strconv"
|
|
"time"
|
|
|
|
"github.com/Unkn0wnCat/calapi/graph/model"
|
|
)
|
|
|
|
// Events is the resolver for the events field.
|
|
func (r *calendarResolver) Events(ctx context.Context, obj *model.Calendar, after *time.Time, before *time.Time) ([]*model.Event, error) {
|
|
if after == nil {
|
|
now := time.Now()
|
|
after = &now
|
|
}
|
|
if before == nil {
|
|
oneYearLater := time.Now().Add(time.Hour * 24 * 365)
|
|
before = &oneYearLater
|
|
}
|
|
|
|
eventBox := db_model.BoxForEvent(database.ObjectBox)
|
|
|
|
filters := []objectbox.Condition{db_model.Event_.Start.Between(after.UnixMilli(), before.UnixMilli())}
|
|
|
|
filters = append(filters, db_model.Event_.Calendar.In(obj.DbID))
|
|
|
|
query := eventBox.Query(filters...)
|
|
results, err := query.Find()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
events := make([]*model.Event, len(results))
|
|
|
|
for i, result := range results {
|
|
event := model.FromEvent(*result)
|
|
events[i] = &event
|
|
}
|
|
|
|
return events, nil
|
|
}
|
|
|
|
// Calendar is the resolver for the calendar field.
|
|
func (r *eventResolver) Calendar(ctx context.Context, obj *model.Event) (*model.Calendar, error) {
|
|
modelCalendar := model.FromCalendar(*obj.DbCalendar)
|
|
|
|
return &modelCalendar, nil
|
|
}
|
|
|
|
// CreateEvent is the resolver for the createEvent field.
|
|
func (r *mutationResolver) CreateEvent(ctx context.Context, input model.NewEvent) (*model.Event, error) {
|
|
panic(fmt.Errorf("not implemented: CreateEvent - createEvent"))
|
|
}
|
|
|
|
// EditEvent is the resolver for the editEvent field.
|
|
func (r *mutationResolver) EditEvent(ctx context.Context, input model.EditEvent) (*model.Event, error) {
|
|
panic(fmt.Errorf("not implemented: EditEvent - editEvent"))
|
|
}
|
|
|
|
// DeleteEvent is the resolver for the deleteEvent field.
|
|
func (r *mutationResolver) DeleteEvent(ctx context.Context, input string) (bool, error) {
|
|
panic(fmt.Errorf("not implemented: DeleteEvent - deleteEvent"))
|
|
}
|
|
|
|
// CreateCalendar is the resolver for the createCalendar field.
|
|
func (r *mutationResolver) CreateCalendar(ctx context.Context, input model.NewCalendar) (*model.Calendar, error) {
|
|
panic(fmt.Errorf("not implemented: CreateCalendar - createCalendar"))
|
|
}
|
|
|
|
// EditCalendar is the resolver for the editCalendar field.
|
|
func (r *mutationResolver) EditCalendar(ctx context.Context, input model.EditCalendar) (*model.Calendar, error) {
|
|
panic(fmt.Errorf("not implemented: EditCalendar - editCalendar"))
|
|
}
|
|
|
|
// DeleteCalendar is the resolver for the deleteCalendar field.
|
|
func (r *mutationResolver) DeleteCalendar(ctx context.Context, input string) (bool, error) {
|
|
panic(fmt.Errorf("not implemented: DeleteCalendar - deleteCalendar"))
|
|
}
|
|
|
|
// Events is the resolver for the events field.
|
|
func (r *queryResolver) Events(ctx context.Context, after *time.Time, before *time.Time, calendar *string) ([]*model.Event, error) {
|
|
if after == nil {
|
|
now := time.Now()
|
|
after = &now
|
|
}
|
|
if before == nil {
|
|
oneYearLater := time.Now().Add(time.Hour * 24 * 365)
|
|
before = &oneYearLater
|
|
}
|
|
|
|
eventBox := db_model.BoxForEvent(database.ObjectBox)
|
|
|
|
filters := []objectbox.Condition{db_model.Event_.Start.Between(after.UnixMilli(), before.UnixMilli())}
|
|
|
|
if calendar != nil {
|
|
calendarId, err := strconv.ParseUint(*calendar, 16, 64)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
filters = append(filters, db_model.Event_.Calendar.In(calendarId))
|
|
}
|
|
|
|
query := eventBox.Query(filters...)
|
|
results, err := query.Find()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
events := make([]*model.Event, len(results))
|
|
|
|
for i, result := range results {
|
|
event := model.FromEvent(*result)
|
|
events[i] = &event
|
|
}
|
|
|
|
return events, nil
|
|
}
|
|
|
|
// Calendars is the resolver for the calendars field.
|
|
func (r *queryResolver) Calendars(ctx context.Context) ([]*model.Calendar, error) {
|
|
calendarBox := db_model.BoxForCalendar(database.ObjectBox)
|
|
results, err := calendarBox.GetAll()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
calendars := make([]*model.Calendar, len(results))
|
|
|
|
for i, result := range results {
|
|
calendar := model.FromCalendar(*result)
|
|
calendars[i] = &calendar
|
|
}
|
|
|
|
return calendars, nil
|
|
}
|
|
|
|
// Calendar is the resolver for the calendar field.
|
|
func (r *queryResolver) Calendar(ctx context.Context, id string) (*model.Calendar, error) {
|
|
actualId, err := strconv.ParseUint(id, 16, 64)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
calendarBox := db_model.BoxForCalendar(database.ObjectBox)
|
|
calendar, err := calendarBox.Get(actualId)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
if calendar == nil {
|
|
return nil, errors.New("not found")
|
|
}
|
|
|
|
modelCalendar := model.FromCalendar(*calendar)
|
|
return &modelCalendar, nil
|
|
}
|
|
|
|
// Event is the resolver for the event field.
|
|
func (r *queryResolver) Event(ctx context.Context, id string) (*model.Event, error) {
|
|
actualId, err := strconv.ParseUint(id, 16, 64)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
eventBox := db_model.BoxForEvent(database.ObjectBox)
|
|
event, err := eventBox.Get(actualId)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
if event == nil {
|
|
return nil, errors.New("not found")
|
|
}
|
|
|
|
modelEvent := model.FromEvent(*event)
|
|
return &modelEvent, nil
|
|
}
|
|
|
|
// Calendar returns CalendarResolver implementation.
|
|
func (r *Resolver) Calendar() CalendarResolver { return &calendarResolver{r} }
|
|
|
|
// Event returns EventResolver implementation.
|
|
func (r *Resolver) Event() EventResolver { return &eventResolver{r} }
|
|
|
|
// Mutation returns MutationResolver implementation.
|
|
func (r *Resolver) Mutation() MutationResolver { return &mutationResolver{r} }
|
|
|
|
// Query returns QueryResolver implementation.
|
|
func (r *Resolver) Query() QueryResolver { return &queryResolver{r} }
|
|
|
|
type calendarResolver struct{ *Resolver }
|
|
type eventResolver struct{ *Resolver }
|
|
type mutationResolver struct{ *Resolver }
|
|
type queryResolver struct{ *Resolver }
|