Skip to content

Instantly share code, notes, and snippets.

@ilmiawan
Created January 1, 2021 03:37
Show Gist options
  • Select an option

  • Save ilmiawan/c62ae8a80f59d2f51ebc5bc8dfb06f23 to your computer and use it in GitHub Desktop.

Select an option

Save ilmiawan/c62ae8a80f59d2f51ebc5bc8dfb06f23 to your computer and use it in GitHub Desktop.
contoh polymorphism
// Service interface
type Service interface {
GetUserDetailsByUserID(id int) (DetailsResponse, error)
}
// service
type service struct {
client Client
}
// GetUserDetailsByUserID function yang mengambil data user dengan memanggil fungsi di client
func (s service) GetUserDetailsByUserID(id int) (DetailsResponse, error) {
return s.client.FetchUserDetailsByID(id)
}
// ------------ Mock polymorphism ----------------------------------
// ServiceMock user service mock
type ServiceMock struct{}
// GetUserDetailsByUserID function langsung mengembalikan
func (s ServiceMock) GetUserDetailsByUserID(id int) (DetailsResponse, error) {
result := DetailsResponse{}
details := make([]Details, 0)
detail := Details{}
details = append(details, detail)
result.Total = 1
result.Data = details
return result, nil
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment