Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: refactor getDictionary to use func in argument #10

Open
wants to merge 11 commits into
base: main
Choose a base branch
from
40 changes: 19 additions & 21 deletions cache/%e4%b8%ad%e6%96%ad-chuudan

Large diffs are not rendered by default.

40 changes: 21 additions & 19 deletions cache/%e5%88%86%e6%95%a3-bunsan

Large diffs are not rendered by default.

57 changes: 36 additions & 21 deletions cache/%e5%88%86%e9%85%8d-bunpai

Large diffs are not rendered by default.

59 changes: 37 additions & 22 deletions cache/%e5%9c%a7%e5%80%92-attou

Large diffs are not rendered by default.

36 changes: 18 additions & 18 deletions cache/%e5%9c%a7%e5%8a%9b-atsuryoku

Large diffs are not rendered by default.

40 changes: 19 additions & 21 deletions cache/%e5%a4%a7%e8%83%86-daitan

Large diffs are not rendered by default.

36 changes: 18 additions & 18 deletions cache/%e5%bc%81%e8%ad%b7-bengo

Large diffs are not rendered by default.

40 changes: 19 additions & 21 deletions cache/%e6%8c%91%e6%88%a6-chousen

Large diffs are not rendered by default.

36 changes: 18 additions & 18 deletions cache/%e6%96%87%e6%9b%b8-bunsho

Large diffs are not rendered by default.

40 changes: 19 additions & 21 deletions cache/%e6%9a%b4%e5%8a%9b-bouryoku

Large diffs are not rendered by default.

40 changes: 21 additions & 19 deletions cache/%e6%ad%a6%e8%a3%85-busou

Large diffs are not rendered by default.

36 changes: 18 additions & 18 deletions cache/%e7%84%a1%e7%a4%bc-burei

Large diffs are not rendered by default.

36 changes: 18 additions & 18 deletions cache/%e7%88%86%e5%bc%be-bakudan

Large diffs are not rendered by default.

36 changes: 18 additions & 18 deletions cache/%e7%9b%b4%e6%84%9f-chokkan

Large diffs are not rendered by default.

36 changes: 18 additions & 18 deletions cache/%e7%9d%80%e6%89%8b-chakushu

Large diffs are not rendered by default.

36 changes: 18 additions & 18 deletions cache/%e7%9f%a5%e6%80%a7-chisei

Large diffs are not rendered by default.

40 changes: 19 additions & 21 deletions cache/%e7%a7%a9%e5%ba%8f-chitsujo

Large diffs are not rendered by default.

40 changes: 19 additions & 21 deletions cache/%e8%86%a8%e5%bc%b5-bouchou

Large diffs are not rendered by default.

36 changes: 18 additions & 18 deletions cache/%e8%93%84%e7%a9%8d-chikuseki

Large diffs are not rendered by default.

36 changes: 18 additions & 18 deletions cache/%e8%b2%b7%e5%8f%8e-baishuu

Large diffs are not rendered by default.

40 changes: 19 additions & 21 deletions cache/%e8%b3%83%e9%87%91-chingin

Large diffs are not rendered by default.

32 changes: 16 additions & 16 deletions cache/%e8%b5%a4%e5%ad%97-akaji

Large diffs are not rendered by default.

36 changes: 18 additions & 18 deletions cache/%e8%bf%91%e3%81%a5%e3%81%8f-chikazuku

Large diffs are not rendered by default.

36 changes: 18 additions & 18 deletions cache/%e9%83%a8%e4%b8%8b-buka

Large diffs are not rendered by default.

36 changes: 18 additions & 18 deletions cache/%e9%98%b2%e8%a1%9b-bouei

Large diffs are not rendered by default.

860 changes: 805 additions & 55 deletions cache/jlpt-n1-vocabulary-list

Large diffs are not rendered by default.

40 changes: 19 additions & 21 deletions cache/learn-jlpt-n1-vocabulary-%e4%be%ae%e8%be%b1-bujoku

Large diffs are not rendered by default.

36 changes: 18 additions & 18 deletions cache/learn-jlpt-n1-vocabulary-%e5%90%8c%e9%a1%9e-dourui

Large diffs are not rendered by default.

40 changes: 19 additions & 21 deletions cache/learn-jlpt-n1-vocabulary-%e5%bc%81%e6%98%8e-benmei

Large diffs are not rendered by default.

40 changes: 21 additions & 19 deletions cache/learn-jlpt-n1-vocabulary-%e5%bc%81%e8%a7%a3-benkai

Large diffs are not rendered by default.

36 changes: 18 additions & 18 deletions cache/learn-jlpt-n1-vocabulary-%e5%be%ae%e7%ac%91-bishou

Large diffs are not rendered by default.

40 changes: 19 additions & 21 deletions cache/learn-jlpt-n1-vocabulary-%e5%bf%a0%e5%91%8a-chuukoku

Large diffs are not rendered by default.

36 changes: 18 additions & 18 deletions cache/learn-jlpt-n1-vocabulary-%e5%bf%a0%e5%ae%9f-chuujitsu

Large diffs are not rendered by default.

36 changes: 18 additions & 18 deletions cache/learn-jlpt-n1-vocabulary-%e6%82%aa%e4%ba%8b-akuji

Large diffs are not rendered by default.

40 changes: 19 additions & 21 deletions cache/learn-jlpt-n1-vocabulary-%e6%89%93%e6%92%83-dageki

Large diffs are not rendered by default.

40 changes: 21 additions & 19 deletions cache/learn-jlpt-n1-vocabulary-%e6%89%b1%e3%81%84-atsukai

Large diffs are not rendered by default.

36 changes: 18 additions & 18 deletions cache/learn-jlpt-n1-vocabulary-%e6%95%8f%e6%84%9f-binkan

Large diffs are not rendered by default.

55 changes: 35 additions & 20 deletions cache/learn-jlpt-n1-vocabulary-%e6%b2%88%e9%bb%99-chinmoku

Large diffs are not rendered by default.

36 changes: 18 additions & 18 deletions cache/learn-jlpt-n1-vocabulary-%e8%aa%bf%e9%81%94-choutatsu

Large diffs are not rendered by default.

36 changes: 18 additions & 18 deletions cache/learn-jlpt-n1-vocabulary-%e8%b2%a7%e4%b9%8f-binbou

Large diffs are not rendered by default.

48 changes: 27 additions & 21 deletions cache/learn-jlpt-n1-vocabulary-%e9%81%8e%e3%81%a1-ayamachi

Large diffs are not rendered by default.

71 changes: 39 additions & 32 deletions controller/dictionary.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ import (
"net/http"
"strconv"

"github.com/hbl-ngocnd1/dictionary/models"

"github.com/hbl-ngocnd1/dictionary/usecase"
"github.com/labstack/echo/v4"
)
Expand All @@ -24,37 +26,7 @@ func (f *dictHandler) Dict(c echo.Context) error {
}

func (f *dictHandler) ApiDict(c echo.Context) error {
notCache := c.QueryParam("not_cache")
level := c.QueryParam("level")
start, err := strconv.Atoi(c.QueryParam("start"))
if err != nil {
start = 0
}
pageSize, err := strconv.Atoi(c.QueryParam("page_size"))
if err != nil {
pageSize = 20
}
if level == "" {
level = "n1"
}
switch level {
case "n1", "n2", "n3", "n4", "n5":
default:
return c.NoContent(http.StatusBadRequest)
}
pwd := c.QueryParam("password")
ctx := context.Background()
data, err := f.dictUseCase.GetDict(ctx, start, pageSize, notCache, level, pwd)
switch err {
case nil:
case usecase.InvalidErr:
return c.NoContent(http.StatusBadRequest)
case usecase.PermissionDeniedErr:
return c.NoContent(http.StatusForbidden)
default:
return c.String(http.StatusInternalServerError, err.Error())
}
return c.JSON(http.StatusOK, data)
return getDataJapanese(f, c, models.MakeWord)
}

func (f *dictHandler) ApiGetDetail(c echo.Context) error {
Expand Down Expand Up @@ -89,7 +61,7 @@ func (f *dictHandler) ITJapanWonderWord(c echo.Context) error {

func (f *dictHandler) ApiITJapanWonderWord(c echo.Context) error {
ctx := context.Background()
data, err := f.dictUseCase.GetITJapanWonderWork(ctx)
data, err := f.dictUseCase.GetITJapanWonderWork(ctx, models.MakeWonderWork)
switch err {
case nil:
case usecase.InvalidErr:
Expand All @@ -98,7 +70,42 @@ func (f *dictHandler) ApiITJapanWonderWord(c echo.Context) error {
return c.String(http.StatusInternalServerError, err.Error())
}
if data == nil {

return c.String(http.StatusOK, "")
}
return c.JSON(http.StatusOK, data)
}

func getDataJapanese(f *dictHandler, c echo.Context, makeData models.MakeData) error {
notCache := c.QueryParam("not_cache")
level := c.QueryParam("level")
start, err := strconv.Atoi(c.QueryParam("start"))
if err != nil {
start = 0
}
pageSize, err := strconv.Atoi(c.QueryParam("page_size"))
if err != nil {
pageSize = 20
}
if level == "" {
level = "n1"
}
switch level {
case "n1", "n2", "n3", "n4", "n5":
default:
return c.NoContent(http.StatusBadRequest)
}
pwd := c.QueryParam("password")
ctx := context.Background()
data, err := f.dictUseCase.GetDict(ctx, start, pageSize, notCache, level, pwd, makeData)
switch err {
case nil:
case usecase.InvalidErr:
return c.NoContent(http.StatusBadRequest)
case usecase.PermissionDeniedErr:
return c.NoContent(http.StatusForbidden)
default:
return c.String(http.StatusInternalServerError, err.Error())
}
return c.JSON(http.StatusOK, data)
}
10 changes: 5 additions & 5 deletions controller/dictionary_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ func TestNewDictHandler(t *testing.T) {
statusCode: http.StatusOK,
newMockDictUC: func(ctrl *gomock.Controller) usecase.DictUseCase {
mock := mock_usecase.NewMockDictUseCase(ctrl)
mock.EXPECT().GetDict(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return([]models.Word{{}, {}, {}}, nil)
mock.EXPECT().GetDict(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return([]models.Word{{}, {}, {}}, nil)
return mock
},
},
Expand All @@ -54,7 +54,7 @@ func TestNewDictHandler(t *testing.T) {
urlParam: "",
newMockDictUC: func(ctrl *gomock.Controller) usecase.DictUseCase {
mock := mock_usecase.NewMockDictUseCase(ctrl)
mock.EXPECT().GetDict(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return(nil, errors.New("unexpected"))
mock.EXPECT().GetDict(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return(nil, errors.New("unexpected"))
return mock
},
statusCode: http.StatusInternalServerError,
Expand All @@ -65,7 +65,7 @@ func TestNewDictHandler(t *testing.T) {
statusCode: http.StatusBadRequest,
newMockDictUC: func(ctrl *gomock.Controller) usecase.DictUseCase {
mock := mock_usecase.NewMockDictUseCase(ctrl)
mock.EXPECT().GetDict(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return([]models.Word{{}, {}, {}}, usecase.InvalidErr)
mock.EXPECT().GetDict(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return([]models.Word{{}, {}, {}}, usecase.InvalidErr)
return mock
},
},
Expand All @@ -75,7 +75,7 @@ func TestNewDictHandler(t *testing.T) {
statusCode: http.StatusForbidden,
newMockDictUC: func(ctrl *gomock.Controller) usecase.DictUseCase {
mock := mock_usecase.NewMockDictUseCase(ctrl)
mock.EXPECT().GetDict(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return([]models.Word{{}, {}, {}}, usecase.PermissionDeniedErr)
mock.EXPECT().GetDict(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return([]models.Word{{}, {}, {}}, usecase.PermissionDeniedErr)
return mock
},
},
Expand All @@ -85,7 +85,7 @@ func TestNewDictHandler(t *testing.T) {
statusCode: http.StatusInternalServerError,
newMockDictUC: func(ctrl *gomock.Controller) usecase.DictUseCase {
mock := mock_usecase.NewMockDictUseCase(ctrl)
mock.EXPECT().GetDict(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return([]models.Word{{}, {}, {}}, errors.New("another Error"))
mock.EXPECT().GetDict(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return([]models.Word{{}, {}, {}}, errors.New("another Error"))
return mock
},
},
Expand Down
Loading