packages feed

rating-chgk-info-0.3.6.3: rating-chgk-info.cabal

cabal-version:       1.24
name:                rating-chgk-info
version:             0.3.6.3
synopsis:            Client for rating.chgk.info API and CSV tables (documentation in Russian)
description:
  Клиент для REST API сайта рейтинга (rating.chgk.info) и функциональности, которой нет в REST API, но которая доступна через экспорт CSV.
  Также содержит REST-сервер для дополнительной функциональности, доступной через CSV
  .
  Документация по типам параметров и возвращаемых значений находится в "RatingChgkInfo.Types"
  .
  Документация по функциям для работы с REST API находится в "RatingChgkInfo.Api"
  .
  Документация по функциям для работы с CSV находится в "RatingChgkInfo.NoApi"
  .
  Примеры работы с библиотекой находятся в папке examples
  .
  В следующем большом релизе планируется заменить в части типов для REST API списки значений на множества (Set), например, для составов команд и т.п. Это должно повысить безопасность библиотеки, и не должно ухудшить возможности работы.
  .
  Пример использования:
  .
  >
  > -- Наша библиотека
  > import RatingChgkInfo
  > -- И немного стандартных библиотек
  > import Control.Monad (forM, void)
  > import Control.Monad.IO.Class (liftIO)
  > import Data.List (nub)
  > import Data.Time (LocalTime(..),fromGregorian,midnight)
  > -- Точка входа в приложение
  > main :: IO ()
  > main = void $ runRatingApi $ do
  >   -- Получим список всех очных турниров
  >   --
  >   -- Функция tournaments получает одну страницу турниров, а функция getAllItems
  >   -- оборачивает подобные функции, чтобы пройтись по всем страницам.
  >   -- Далее из этого списка выбираются очные турниры 2018 года
  >   let s2018 = LocalTime (fromGregorian 2018 1 1) midnight
  >       e2018 = LocalTime (fromGregorian 2019 1 1) midnight
  >   tourns <- filter (\t -> trs_typeName t == Casual &&
  >                           trs_dateStart t >= s2018 &&
  >                           trs_dateEnd t <= e2018) <$>
  >             getAllItems tournaments
  >   -- Проходимся по полученному списку
  >   ts <- forM tourns $ \t -> do
  >     let ident = trs_idtournament t
  >     -- Получаем результаты турнира
  >     res <- tournamentResults ident
  >     -- Возвращаем названия команд-участниц
  >     pure (map tr_current_name res)
  >   -- Выводим, сколько уникальных названий было по всем турнирам
  >   liftIO (print (length (nub ts)))


license:             BSD3
license-file:        LICENSE
author:              Mansur Ziiatdinov
maintainer:          gltronred@gmail.com
copyright:           2018-2019 Mansur Ziiatdinov
category:            Utility
build-type:          Simple
extra-doc-files:     README.md
                   , CHANGELOG.md
tested-with:         GHC == 8.4.3

library
  hs-source-dirs:      src
  exposed-modules:     RatingChgkInfo
                       RatingChgkInfo.Api
                       RatingChgkInfo.Extra
                       RatingChgkInfo.NoApi
                       RatingChgkInfo.Types
                       RatingChgkInfo.Types.Unsafe
                       Prelude
  ghc-options:         -Wall
                       -Wincomplete-uni-patterns
                       -Wincomplete-record-updates
                       -Wcompat
                       -Widentities
                       -Wredundant-constraints
                       -fhide-source-paths
                       -Wmissing-export-lists
                       -Wpartial-fields
  build-depends:       base-noprelude == 4.11.*
                     , relude >= 0.4.0
                     , aeson >=1.4
                     , bytestring >=0.10
                     , cassava >=0.5
                     , containers >=0.5
                     , http-client >= 0.5
                     , iconv >=0.4
                     , lens >=4.17
                     , network >=2.8
                     , optparse-generic >=1.3
                     , servant >=0.15
                     , servant-client >=0.15
                     , servant-js >=0.9
                     , servant-server >=0.15
                     , servant-swagger >=1.1
                     , swagger2 >=2.2
                     , text >=1.2
                     , time >=1.8
                     , vector >=0.12
                     , wai >=3.2
                     , warp >=3.2
                     , wreq >=0.5
  default-language:    Haskell2010
  

executable example1
  hs-source-dirs:      examples
  main-is:             Simple.hs
  ghc-options:         -Wall
                       -threaded
                       -rtsopts
                       -with-rtsopts=-N
                       -Wincomplete-uni-patterns
                       -Wincomplete-record-updates
                       -Wcompat
                       -Widentities
                       -Wredundant-constraints
                       -fhide-source-paths
                       -Wmissing-export-lists
                       -Wpartial-fields
  build-depends:       base-noprelude
                     , rating-chgk-info
                     , relude
                     , time
  default-language:    Haskell2010

executable example2
  hs-source-dirs:      examples
  main-is:             GetAllClaims.hs
  ghc-options:         -Wall
                       -threaded
                       -rtsopts
                       -with-rtsopts=-N
                       -Wincomplete-uni-patterns
                       -Wincomplete-record-updates
                       -Wcompat
                       -Widentities
                       -Wredundant-constraints
                       -fhide-source-paths
                       -Wmissing-export-lists
                       -Wpartial-fields
  build-depends:       base-noprelude
                     , rating-chgk-info
                     , relude
                     , text
  default-language:    Haskell2010

executable extra-rating-api
  hs-source-dirs:      app/extra-rating-api
  main-is:             Main.hs
  ghc-options:         -Wall
                       -threaded
                       -rtsopts
                       -with-rtsopts=-N
                       -Wincomplete-uni-patterns
                       -Wincomplete-record-updates
                       -Wcompat
                       -Widentities
                       -Wredundant-constraints
                       -fhide-source-paths
                       -Wmissing-export-lists
                       -Wpartial-fields
  build-depends:       base-noprelude
                     , rating-chgk-info
                     , relude
  default-language:    Haskell2010
  

test-suite rating-chgk-info-test
  type:                exitcode-stdio-1.0
  hs-source-dirs:      test
  main-is:             Spec.hs
  ghc-options:         -Wall
                       -threaded
                       -rtsopts
                       -with-rtsopts=-N
                       -Wincomplete-uni-patterns
                       -Wincomplete-record-updates
                       -Wcompat
                       -Widentities
                       -Wredundant-constraints
                       -fhide-source-paths
                       -Wmissing-export-lists
                       -Wpartial-fields
  build-depends:       base-noprelude
                     , rating-chgk-info
                     , relude
  default-language:    Haskell2010
  

benchmark rating-chgk-info-benchmark
  type:                exitcode-stdio-1.0
  hs-source-dirs:      benchmark
  main-is:             Main.hs
  ghc-options:         -Wall
                       -threaded
                       -rtsopts
                       -with-rtsopts=-N
                       -Wincomplete-uni-patterns
                       -Wincomplete-record-updates
                       -Wcompat
                       -Widentities
                       -Wredundant-constraints
                       -fhide-source-paths
                       -Wmissing-export-lists
                       -Wpartial-fields
  build-depends:       base-noprelude
                     , gauge
                     , rating-chgk-info
                     , relude
  default-language:    Haskell2010