vorteil/direktiv

View on GitHub
pkg/model/start-events-and.go

Summary

Maintainability
A
0 mins
Test Coverage
package model

import (
    "errors"
)

type EventsAndStart struct {
    StartCommon `yaml:",inline"`
    LifeSpan    string                 `yaml:"lifespan,omitempty"`
    Events      []StartEventDefinition `yaml:"events"`
}

func (o *EventsAndStart) GetEvents() []StartEventDefinition {
    events := make([]StartEventDefinition, 0)
    if o != nil && o.Events != nil {
        events = append(events, o.Events...)
    }
    return events
}

func (o *EventsAndStart) Validate() error {
    if o.Events == nil || len(o.Events) == 0 {
        return errors.New("events required")
    }

    if o.LifeSpan != "" && !isISO8601(o.LifeSpan) {
        return errors.New("lifespan is not a ISO8601 string")
    }

    if err := o.commonValidate(); err != nil {
        return err
    }

    return nil
}