Add Generic, ToSchema and To/FromJSONKey instances

This commit is contained in:
Dmitry Olshansky 2022-04-02 12:26:06 +03:00
parent f41fa75ba9
commit a85df94fc3
3 changed files with 22 additions and 69 deletions

View File

@ -32,6 +32,7 @@ library
, aeson >= 0.5
, deepseq >= 1.4
, shakespeare == 2.0.*
, openapi3
ghc-options: -Wall
other-modules: Data.CountryCodes.ISO31661
exposed-modules: Data.CountryCodes

View File

@ -1,4 +1,6 @@
{-# LANGUAGE DeriveDataTypeable, OverloadedStrings, NoImplicitPrelude, PatternGuards, FlexibleInstances, MultiParamTypeClasses #-}
{-# LANGUAGE DeriveDataTypeable, OverloadedStrings, NoImplicitPrelude
, DeriveGeneric, DeriveAnyClass, PatternGuards, FlexibleInstances
, MultiParamTypeClasses, StandaloneDeriving #-}
-- | This file is generated from the Wikipedia page
-- <http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2>
module Data.CountryCodes.ISO31661 (
@ -14,11 +16,13 @@ module Data.CountryCodes.ISO31661 (
import Control.Applicative (pure)
import Control.DeepSeq (NFData(..))
import Data.Aeson
import Data.Typeable
import qualified Data.Text as T
import Prelude (Show,Read,Eq,Ord,Bounded,Enum,error,($),(++),Maybe(..),(.),fail,seq)
import Text.Shakespeare.I18N
import Data.Aeson
import Data.Typeable
import Data.Text as T
import Data.OpenApi
import GHC.Generics
import Prelude (Show,Read,Eq,Ord,Bounded,Enum,error,($),(++),Maybe(..),(.),fail,seq)
import Text.Shakespeare.I18N
data CountryCode =
AD
@ -278,7 +282,7 @@ data CountryCode =
| XK
| XC
| WE
deriving (Show,Read,Eq,Ord,Bounded,Enum,Typeable)
deriving (Show,Read,Eq,Ord,Bounded,Enum,Typeable, Generic, ToSchema)
-- | Maybe get the CountryCode from the text code.
fromMText :: T.Text -> Maybe CountryCode
@ -1583,13 +1587,16 @@ countryList = [("Afghanistan",AF)
-- | to json: as a simple string
instance ToJSON CountryCode where
toJSON =toJSON . toText
toJSON = toJSON . toText
-- | from json: as a simple string
instance FromJSON CountryCode where
parseJSON (String s)
| Just a <- fromMText s=pure a
parseJSON _ =fail "CountryCode"
parseJSON _ = fail "CountryCode"
deriving instance ToJSONKey CountryCode
deriving instance FromJSONKey CountryCode
-- | show user readable name, in English (ignoring locale for now)
instance RenderMessage master CountryCode where

View File

@ -1,64 +1,9 @@
# This file was automatically generated by 'stack init'
#
# Some commonly used options have been documented as comments in this file.
# For advanced use and comprehensive documentation of the format, please see:
# https://docs.haskellstack.org/en/stable/yaml_configuration/
resolver: lts-18.18
# Resolver to choose a 'specific' stackage snapshot or a compiler version.
# A snapshot resolver dictates the compiler version and the set of packages
# to be used for project dependencies. For example:
#
# resolver: lts-3.5
# resolver: nightly-2015-09-21
# resolver: ghc-7.10.2
#
# The location of a snapshot can be provided as a file or url. Stack assumes
# a snapshot provided as a file might change, whereas a url resource does not.
#
# resolver: ./custom-snapshot.yaml
# resolver: https://example.com/snapshots/2018-01-01.yaml
resolver: lts-13.7
# User packages to be built.
# Various formats can be used as shown in the example below.
#
# packages:
# - some-directory
# - https://example.com/foo/bar/baz-0.0.2.tar.gz
# - location:
# git: https://github.com/commercialhaskell/stack.git
# commit: e7b331f14bcffb8367cd58fbfc8b40ec7642100a
# - location: https://github.com/commercialhaskell/stack/commit/e7b331f14bcffb8367cd58fbfc8b40ec7642100a
# subdirs:
# - auto-update
# - wai
packages:
- .
# Dependency packages to be pulled from upstream that are not in the resolver
# using the same syntax as the packages field.
# (e.g., acme-missiles-0.3)
# extra-deps: []
# Override default flag values for local packages and extra-deps
# flags: {}
# Extra package databases containing global packages
# extra-package-dbs: []
# Control whether we use the GHC we find on the path
# system-ghc: true
#
# Require a specific version of stack, using version ranges
# require-stack-version: -any # Default
# require-stack-version: ">=1.9"
#
# Override the architecture used by stack, especially useful on Windows
# arch: i386
# arch: x86_64
#
# Extra directories used by stack for building
# extra-include-dirs: [/path/to/dir]
# extra-lib-dirs: [/path/to/dir]
#
# Allow a newer minor version of GHC than the snapshot specifies
# compiler-check: newer-minor
extra-deps:
- git: https://github.com/typeable/openapi3.git
# nix-sha256: 1aqn5dia4aqwpmr3v0rcb8kzhknp5674hhay8h7p76206dx83ykg
commit: bb1c64f8501535143c92907166fdc9f8df6d51b9