module Faker.Address
(
city
, streetName
, streetAddress
, latitude
, longitude
, cityPrefix
, citySuffix
, country
, countryCode
, buildingNumber
, streetSuffix
, secondaryAddress
, postcode
, postcodeByState
, state
, stateAbbr
, timeZone
, defaultCountry
, randomAddress
)
where
import Faker.Utils
import qualified Faker.Name as N
city :: IO String
city = do
fName <- N.firstName
lName <- N.lastName
pref <- cityPrefix
suff <- citySuffix
ind <- randomNum (0,3)
return $ case ind of
0 -> pref ++ " " ++ fName ++ suff
1 -> pref ++ " " ++ fName
2 -> fName ++ suff
_ -> lName ++ suff
streetName :: IO String
streetName = do
fName <- N.firstName
lName <- N.lastName
suff <- streetSuffix
ind <- randomNum (0,1)
return $ case ind of
0 -> fName ++ " " ++ suff
_ -> lName ++ " " ++ suff
streetAddress :: IO String
streetAddress = do
sName <- streetName
bNum <- buildingNumber
return $ bNum ++ " " ++ sName
latitude :: IO String
latitude = do
num <- randomNum (1,99)
return . show $ ((fromIntegral num :: Double) / 100) * 180 90
longitude :: IO String
longitude = do
num <- randomNum (1,99)
return . show $ ((fromIntegral num :: Double) / 100) * 360 180
cityPrefix :: IO String
cityPrefix = randomAddress "city_prefix"
citySuffix :: IO String
citySuffix = randomAddress "city_suffix"
country :: IO String
country = randomAddress "country"
countryCode :: IO String
countryCode = randomAddress "country_code"
buildingNumber :: IO String
buildingNumber = randomAddress "building_number" >>= replaceSymbols
streetSuffix :: IO String
streetSuffix = randomAddress "street_suffix"
secondaryAddress :: IO String
secondaryAddress = randomAddress "secondary_address" >>= replaceSymbols
postcode :: IO String
postcode = randomAddress "postcode" >>= replaceSymbols
postcodeByState :: IO String
postcodeByState = randomAddress "postcode_by_state" >>= replaceSymbols
state :: IO String
state = randomAddress "state"
stateAbbr :: IO String
stateAbbr = randomAddress "state_abbr"
timeZone :: IO String
timeZone = randomAddress "time_zone"
defaultCountry :: IO String
defaultCountry = randomAddress "default_country"
randomAddress :: String -> IO String
randomAddress = randomValue "address"