func (m *MapStore) ReadPuppy(id int16) (puppy.Puppy, error) {
	if puppy, ok := m.puppies[id]; ok {
		return puppy, nil
	}
	return puppy.Puppy{}, puppy.Errorf(puppy.ErrIDNotFound, "puppy with ID:%d not found", id)
}
ReadPuppy reads store by Puppy ID
package store
import (
	puppy "github.com/anz-bank/go-course/10_rest/runnerdave/pkg/puppy"
)
type MapStore struct {
	puppies map[int16]puppy.Puppy
	nextID  int16
}
func NewMapStore() *MapStore {
	return &MapStore{
		nextID:  1,
		puppies: map[int16]puppy.Puppy{}}
}
func (m *MapStore) CreatePuppy(p puppy.Puppy) error {
	if err := puppy.ValidateValue(p.Value); err != nil {
		return err
	}
	p.ID = m.nextID
	m.puppies[p.ID] = p
	m.nextID++
	return nil
}