-- |

-- see: https://webservice.rakuten.co.jp/document/#ichibaApi



{-# LANGUAGE OverloadedStrings #-}



module Rakuten.Endpoints.Ichiba

    ( searchIchibaItem

    , searchIchibaGenre

    ) where



import           Data.Monoid      ((<>))

import           Network.HTTP.Req (GET (..), JsonResponse, MonadHttp,

                                   NoReqBody (..), jsonResponse, req, (/:))

import           Rakuten.Client

import           Rakuten.Types



-- |

-- Rakuten Ichiba Item Search API

-- more info: https://webservice.rakuten.co.jp/api/ichibaitemsearch



searchIchibaItem :: (MonadHttp m, Client c) =>

  c -> IchibaItemSearchParam -> m (JsonResponse IchibaItems)

searchIchibaItem c param = req GET url NoReqBody jsonResponse option

  where

    url = baseUrl c /: "IchibaItem" /: "Search" /: "20170706"

    option = mkHeader c <> toParams param



-- |

-- Rakuten Ichiba Genre Search AppId

-- more info: https://webservice.rakuten.co.jp/api/ichibagenresearch



searchIchibaGenre :: (MonadHttp m, Client c) =>

  c -> IchibaGenreSearchParam -> m (JsonResponse IchibaGenres)

searchIchibaGenre c param = req GET url NoReqBody jsonResponse option

  where

    url = baseUrl c /: "IchibaGenre" /: "Search" /: "20140222"

    option = mkHeader c <> toParams param