calapi/graph/schema.resolvers.go
2023-02-24 22:17:45 +01:00

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 }