This commit is contained in:
Kenta420 2024-01-25 16:54:57 +07:00
parent 5cf0a8b761
commit 28cdbbc4f9
5 changed files with 84 additions and 1 deletions

View file

@ -16,6 +16,7 @@ import (
type RecipeService interface {
GetRecipeDashboard(request *contracts.RecipeDashboardRequest) (contracts.RecipeDashboardResponse, error)
GetRecipeOverview(request *contracts.RecipeOverviewRequest) (contracts.RecipeOverviewResponse, error)
GetAllRecipe(request *contracts.GetAllRecipeRequest) (contracts.GetAllRecipeResponse, error)
GetRecipeDetail(request *contracts.RecipeDetailRequest) (contracts.RecipeDetailResponse, error)
GetRecipeDetailMat(request *contracts.RecipeDetailRequest) (contracts.RecipeDetailMatListResponse, error)
@ -299,6 +300,48 @@ func (rs *recipeService) GetRecipeOverview(request *contracts.RecipeOverviewRequ
return result, nil
}
func (rs *recipeService) GetAllRecipe(request *contracts.GetAllRecipeRequest) (contracts.GetAllRecipeResponse, error) {
countryID, err := rs.db.GetCountryIDByName(request.Country)
if err != nil {
return contracts.GetAllRecipeResponse{}, fmt.Errorf("country name: %s not found", request.Country)
}
recipe := rs.db.GetRecipe(countryID, request.Filename)
result := contracts.GetAllRecipeResponse{}
// Map to contracts.RecipeOverview
for _, v := range recipe.Recipe01 {
result.Result = append(result.Result, contracts.RecipeOverview{
ID: v.ID,
ProductCode: v.ProductCode,
Name: v.Name,
OtherName: v.OtherName,
Description: v.Description,
OtherDescription: v.OtherDescription,
LastUpdated: v.LastChange,
})
// submenu
if len(v.SubMenu) > 0 {
for _, sub := range v.SubMenu {
result.Result = append(result.Result, contracts.RecipeOverview{
ID: sub.ID,
ProductCode: sub.ProductCode,
Name: sub.Name,
OtherName: sub.OtherName,
Description: sub.Description,
OtherDescription: sub.OtherDescription,
LastUpdated: sub.LastChange,
})
}
}
}
return result, nil
}
func NewRecipeService(db *data.Data, taoLogger *logger.TaoLogger) RecipeService {
return &recipeService{
db: db,