Skip to content

Instantly share code, notes, and snippets.

@SeptiyanAndika
Last active October 5, 2018 08:16
Show Gist options
  • Save SeptiyanAndika/c9ba747618bb12316344a9daeb4c5def to your computer and use it in GitHub Desktop.
Save SeptiyanAndika/c9ba747618bb12316344a9daeb4c5def to your computer and use it in GitHub Desktop.
package main
import (
"fmt"
"reflect"
)
type CurrencySchema struct {
Code string
Name string
Type string
}
type CRUD struct {
Model func() (interface{}, interface{})
}
func (cr CRUD) Create(data string) {
fmt.Println("create function");
m, _:=cr.Model()
fmt.Println(reflect.TypeOf(m).Name());
fmt.Println(data);
}
func (cr CRUD) GET() {
fmt.Println("Get function");
}
type CurrencyRepository struct {
currency CRUD
}
func (cr *CurrencyRepository) Currency() CRUD {
return CRUD{
Model: func() (interface{}, interface{}) {
return CurrencySchema{}, []CurrencySchema{}
},
}
}
func main() {
cr := CurrencyRepository{};
cr.Currency().Create("ini data");
fmt.Println("=====")
cr.Currency().GET()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment