Skip to content

Instantly share code, notes, and snippets.

@krittawatcode
Last active December 14, 2020 19:05
Show Gist options
  • Save krittawatcode/e31ee0b08673d2aff0a56fa9287dbc54 to your computer and use it in GitHub Desktop.
Save krittawatcode/e31ee0b08673d2aff0a56fa9287dbc54 to your computer and use it in GitHub Desktop.
package usecases
import (
"github.com/krittawatcode/go-todo-clean-arch/domains"
"github.com/krittawatcode/go-todo-clean-arch/models"
)
// UseCase don't give a shit about the world!!
type todoUseCase struct {
todoRepo domains.ToDoRepository
}
// NewToDoUseCase ...
func NewToDoUseCase(repo domains.ToDoRepository) domains.ToDoUseCase {
return &todoUseCase{
todoRepo: repo,
}
}
func (t *todoUseCase) GetAllTodo() (todos []models.Todo, err error) {
var todo []models.Todo
handleErr := t.todoRepo.GetAllTodo(&todo)
return todo, handleErr
}
func (t *todoUseCase) CreateATodo(input *models.Todo) (err error) {
handleErr := t.todoRepo.CreateATodo(input)
return handleErr
}
func (t *todoUseCase) GetATodo(input *models.Todo, id string) (err error) {
handleErr := t.todoRepo.GetATodo(input, id)
return handleErr
}
func (t *todoUseCase) UpdateATodo(input *models.Todo, id string) (err error) {
// check avaliable
var checkingTodo models.Todo
errResp := t.todoRepo.GetATodo(&checkingTodo, id)
if errResp != nil {
return errResp
}
// update
handleErr := t.todoRepo.UpdateATodo(input, id)
return handleErr
}
func (t *todoUseCase) DeleteATodo(input *models.Todo, id string) (err error) {
handleErr := t.todoRepo.DeleteATodo(input, id)
return handleErr
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment