ensure reasonable ordering of declarations in source
1 file changed, 50 insertions(+), 50 deletions(-)
changed files
M domain/calendar/calendar.go → domain/calendar/calendar.go
@@ -20,11 +20,6 @@ "alin.ovh/homestead/shared/cache" "alin.ovh/homestead/shared/config" ) -const ( - Filename = "calendar.ics" - Refresh = 30 * time.Minute -) - type Options struct { URL config.URL Timezone config.Timezone@@ -54,6 +49,11 @@ type CalendarDate struct { Date BusyPeriods []*Busy } + +const ( + Filename = "calendar.ics" + Refresh = 30 * time.Minute +) func New(opts *Options, logger *log.Logger) *Calendar { if opts.URL.Scheme == "webcal" {@@ -110,51 +110,6 @@ return err } -func (c *Calendar) open() (*os.File, error) { - f, err := cache.Root.Open(Filename) - if err != nil { - return nil, fault.Wrap(err, fmsg.With("could not open calendar file")) - } - - return f, nil -} - -func (c *Calendar) fetch(ctx context.Context) error { - c.log.Debug("fetching calendar", "url", c.opts.URL.String()) - - f, err := cache.Root.OpenFile(Filename, os.O_RDWR|os.O_CREATE, 0o600) - if err != nil { - return fault.Wrap(err, fmsg.With("could not create temp file")) - } - defer f.Close() - - req, err := http.NewRequestWithContext(ctx, http.MethodGet, c.opts.URL.String(), nil) - if err != nil { - return fault.Wrap(err, fmsg.With("could not create request")) - } - - res, err := c.client.Do(req) - if err != nil { - return fault.Wrap(err, fmsg.With("could not fetch calendar")) - } - defer res.Body.Close() - - if res.StatusCode != http.StatusOK { - return fault.New(fmt.Sprintf("unexpected status code %d", res.StatusCode)) - } - - if _, err := io.Copy(f, res.Body); err != nil { - return fault.Wrap(err, fmsg.With("could not write calendar to file")) - } - - err = f.Sync() - if err != nil { - return fault.Wrap(err, fmsg.With("could not sync file")) - } - - return nil -} - func (c *Calendar) EventsBetween(from time.Time, to time.Time) ([]*Busy, error) { if c.Calendar == nil { return nil, fault.New("calendar not initialised")@@ -244,6 +199,51 @@ cds = append(cds, cd) } return cds, nil +} + +func (c *Calendar) open() (*os.File, error) { + f, err := cache.Root.Open(Filename) + if err != nil { + return nil, fault.Wrap(err, fmsg.With("could not open calendar file")) + } + + return f, nil +} + +func (c *Calendar) fetch(ctx context.Context) error { + c.log.Debug("fetching calendar", "url", c.opts.URL.String()) + + f, err := cache.Root.OpenFile(Filename, os.O_RDWR|os.O_CREATE, 0o600) + if err != nil { + return fault.Wrap(err, fmsg.With("could not create temp file")) + } + defer f.Close() + + req, err := http.NewRequestWithContext(ctx, http.MethodGet, c.opts.URL.String(), nil) + if err != nil { + return fault.Wrap(err, fmsg.With("could not create request")) + } + + res, err := c.client.Do(req) + if err != nil { + return fault.Wrap(err, fmsg.With("could not fetch calendar")) + } + defer res.Body.Close() + + if res.StatusCode != http.StatusOK { + return fault.New(fmt.Sprintf("unexpected status code %d", res.StatusCode)) + } + + if _, err := io.Copy(f, res.Body); err != nil { + return fault.Wrap(err, fmsg.With("could not write calendar to file")) + } + + err = f.Sync() + if err != nil { + return fault.Wrap(err, fmsg.With("could not sync file")) + } + + return nil } func (d Date) Between(lower, upper Date) bool {