Skip to content

Instantly share code, notes, and snippets.

@kben19
Created April 2, 2022 11:28
Show Gist options
  • Save kben19/952397de4855d793e31a80bc9ef45b8d to your computer and use it in GitHub Desktop.
Save kben19/952397de4855d793e31a80bc9ef45b8d to your computer and use it in GitHub Desktop.
Wrapper Caching
func (wrapper *ServiceWrapper) GetProductStock(id int) (stock int, err error) {
key := fmt.Sprintf("key-%d", id)
value, err := wrapper.cache.Get(key)
if err == nil && value != "" {
stock, _ = strconv.Atoi(value)
return
}
defer func () {
_ = wrapper.cache.Set(key, strconv.Itoa(stock))
} ()
stock, err = wrapper.service.GetProductStock(id)
return
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment