usecases

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 4, 2021 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

View Source
const MaxLimitAllowed = 1000

Variables

View Source
var (
	// ErrInvalidLimit is thrown when limit is negative or zero
	ErrInvalidLimit = errors.New("invalid limit")

	// ErrMaxAllowedLimitExceed is thrown when limit is higher than max allowed
	ErrMaxAllowedLimitExceed = errors.New("max allowed limit exceed")

	// ErrMissingLimit is thrown when limit is missing
	ErrMissingLimit = errors.New("missing limit")

	// ErrInvalidFizzModulo is thrown when fizz modulo is zero or negative
	ErrInvalidFizzModulo = errors.New("invalid fizz modulo")

	// ErrMissingFizzModulo is thrown when fizz modulo is missing
	ErrMissingFizzModulo = errors.New("missing fizz modulo")

	// ErrInvalidBuzzModulo is thrown when buzz modulo is zero or negative
	ErrInvalidBuzzModulo = errors.New("invalid buzz modulo")

	// ErrMissingBuzzModulo is thrown when buzz modulo is missing
	ErrMissingBuzzModulo = errors.New("missing buzz modulo")

	// ErrMissingFizzString is thrown when fizz string is missing or empty
	ErrMissingFizzString = errors.New("missing fizz string")

	// ErrMissingBuzzString is thrown when buzz string is missing or empty
	ErrMissingBuzzString = errors.New("missing buzz string")

	// ErrUnexpected is thrown when something unexpected happened
	ErrUnexpected = errors.New("unexpected error")
)

Functions

This section is empty.

Types

type Usecases

type Usecases interface {
	// FizzBuzz returns a list of strings with numbers from 1 to limit where:
	// all multiples of request.FizzModulo are replaced by request.FizzString,
	// all multiples of request.BuzzModulo are replaced by request.BuzzString,
	// all multiples of request.FizzModulo and request.BuzzModulo are replaced by FizzStringBuzzString
	// or error if one of given parameters are invalid
	FizzBuzz(fizzModulo, buzzModulo, limit *int, fizzString, buzzString *string) (string, error)

	// RetrieveStats returns the FizzBuzz corresponding to most used requests,
	// as well as the number of hits for those requests
	RetrieveStats() ([]domains.FizzBuzz, uint)
}

func NewUsecases

func NewUsecases(fizzBuzz fizzBuzzModule.FizzBuzz, stats statsModule.Stats, logger *zap.Logger) Usecases

NewUsecases is constructor of Vanilla

type Vanilla

type Vanilla struct {
	// contains filtered or unexported fields
}

Vanilla is default implementation of Usecases interface

func (Vanilla) FizzBuzz

func (uc Vanilla) FizzBuzz(fizzModulo, buzzModulo, limit *int, fizzString, buzzString *string) (string, error)

FizzBuzz implements Usecases interface

func (Vanilla) RetrieveStats

func (uc Vanilla) RetrieveStats() ([]domains.FizzBuzz, uint)

RetrieveStats implements Usecases interface

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL
JackTT - Gopher 🇻🇳