Skip to content

Instantly share code, notes, and snippets.

@eduardobc88
Created March 10, 2020 21:49
Show Gist options
  • Save eduardobc88/7f030837355e9308ae5d8fd9b99ffc44 to your computer and use it in GitHub Desktop.
Save eduardobc88/7f030837355e9308ae5d8fd9b99ffc44 to your computer and use it in GitHub Desktop.
Example Golang hooks
package hook
import "fmt"
// model struct
type ItemType struct {
// define props
}
// methods
func (i ItemType) Read (query string) (ItemType, ItemType) {
itemTypeBefore := i.BeforeRead()
fmt.Println("== ItemType - Read ==")
itemTypeAfter := i.AfterRead()
return itemTypeBefore, itemTypeAfter
}
func (i ItemType) Create (query string) (ItemType, ItemType) {
itemTypeBefore := i.BeforeCreate()
fmt.Println("== ItemType - Create ==")
itemTypeAfter := i.AfterCreate()
return itemTypeBefore, itemTypeAfter
}
func (i ItemType) Update (query string) (ItemType, ItemType) {
itemTypeBefore := i.BeforeUpdate()
fmt.Println("== ItemType - Update ==")
itemTypeAfter := i.AfterUpdate()
return itemTypeBefore, itemTypeAfter
}
func (i ItemType) Delete (query string) (ItemType, ItemType) {
itemTypeBefore := i.BeforeDelete()
fmt.Println("== ItemType - Delete ==")
itemTypeAfter := i.AfterDelete()
return itemTypeBefore, itemTypeAfter
}
// hook action methods
func (i ItemType) BeforeRead () (ItemType) {
fmt.Println("== ItemType - BeforeRead ==")
return i
}
func (i ItemType) AfterRead () (ItemType) {
fmt.Println("== ItemType - AfterRead ==")
return i
}
func (i ItemType) BeforeCreate () (ItemType) {
fmt.Println("== ItemType - BeforeCreate ==")
return i
}
func (i ItemType) AfterCreate () (ItemType) {
fmt.Println("== ItemType - AfterCreate ==")
return i
}
func (i ItemType) BeforeUpdate () (ItemType) {
fmt.Println("== ItemType - BeforeUpdate ==")
return i
}
func (i ItemType) AfterUpdate () (ItemType) {
fmt.Println("== ItemType - AfterUpdate ==")
return i
}
func (i ItemType) BeforeDelete () (ItemType) {
fmt.Println("== ItemType - BeforeDelete ==")
return i
}
func (i ItemType) AfterDelete () (ItemType) {
fmt.Println("== ItemType - AfterDelete ==")
return i
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment