diff --git a/service/service.go b/service/service.go index 95d2fee..c048482 100644 --- a/service/service.go +++ b/service/service.go @@ -39,27 +39,30 @@ func New(s store.Store, opts Options) (*Service, error) { return nil, errors.New("pase: store is required") } - if opts.IDGenerator == nil { - opts.IDGenerator = DefaultIDGenerator() + idGenerator := DefaultIDGenerator() + if opts.IDGenerator != nil { + idGenerator = opts.IDGenerator } + operationTimeout := DefaultOperationTimeout if opts.OperationTimeout < 0 { return nil, errors.New("pase: OperationTimeout must be non-negative") - } else if opts.OperationTimeout == 0 { - opts.OperationTimeout = DefaultOperationTimeout + } else if opts.OperationTimeout != 0 { + operationTimeout = opts.OperationTimeout } + magicLinkTTL := DefaultMagicLinkTTL if opts.MagicLinkTTL < 0 { return nil, errors.New("pase: MagicLinkTTL must be non-negative") - } else if opts.MagicLinkTTL == 0 { - opts.MagicLinkTTL = DefaultMagicLinkTTL + } else if opts.MagicLinkTTL != 0 { + magicLinkTTL = opts.MagicLinkTTL } return &Service{ store: s, - idGenerator: opts.IDGenerator, - operationTimeout: opts.OperationTimeout, - magicLinkTTL: opts.MagicLinkTTL, + idGenerator: idGenerator, + operationTimeout: operationTimeout, + magicLinkTTL: magicLinkTTL, }, nil }