mock-mock / mockmock-meter

0 stars 0 forks source link

configure_mock_mock.go起点でどうやってクラス分割するかを設計する #24

Open mura123yasu opened 5 years ago

mura123yasu commented 5 years ago

configure_mock_mock上は下記のような実装方針で進める。

元のソースは下記。

    /*
        Mock
    */
    api.MockPostMockHandler = mock.PostMockHandlerFunc(func(params mock.PostMockParams) middleware.Responder {
        return middleware.NotImplemented("operation mock.PostMock has not yet been implemented")
    })

実装時のイメージは下記。

    /*
        Mock
    */
    api.MockPostMockHandler = mock.PostMockHandlerFunc(func(params mock.PostMockParams) middleware.Responder {
        // 1. まずはrequest parameterを取得
        // ex) userID := params.HTTPRequest.Header.Get("userID")

        // 2. コマンドパーサー経由で実行対象コマンドを特定

        message := "some response message to slack"
        // 3. 各種コマンドを実行。戻り値はSlackへ返却するmessage
        // ex) message = command.Start(userID)
        return mock.NewPostMockOK().WithPayload(&models.SLACKResponse{Message: message})
    })
mura123yasu commented 5 years ago

各コマンドは commandパッケージ配下に属するものとする。
ディレクトリ構成的には、genと同階層にmock_cmdを作成し、その配下に、例えばstart.go, end.goといった形でファイルを作成する形。

start.goの中では、Startという関数を実装しておき、configure_xx側で mock_cmd.Start()といった形で使用する。

Startという関数の中では、実際にPostgresへアクセスしレコードの挿入を行う。(もう一層データアクセス層として分割しておいたほうがよい??...)