database-anonymizer/faker/faker.go
Simon Vieille 628308e2fc
manager all number types
add 'null' faker

update readme
2024-04-02 19:24:50 +02:00

165 lines
10 KiB
Go

package faker
import (
"fmt"
base_faker "github.com/jaswdr/faker"
"strconv"
)
type FakeManager struct {
Fakers map[string]func() string
}
func NewFakeManager() FakeManager {
manager := FakeManager{}
datas := make(map[string]func() string)
fake := base_faker.New()
datas["address"] = func() string { return fake.Address().Address() }
datas["address_buildingnumber"] = func() string { return fake.Address().BuildingNumber() }
datas["address_city"] = func() string { return fake.Address().City() }
datas["address_cityprefix"] = func() string { return fake.Address().CityPrefix() }
datas["address_citysuffix"] = func() string { return fake.Address().CitySuffix() }
datas["address_country"] = func() string { return fake.Address().Country() }
datas["address_countryabbr"] = func() string { return fake.Address().CountryAbbr() }
datas["address_countrycode"] = func() string { return fake.Address().CountryCode() }
datas["address_latitude"] = func() string { return fmt.Sprintf("%f", fake.Address().Latitude()) }
datas["address_longitude"] = func() string { return fmt.Sprintf("%f", fake.Address().Longitude()) }
datas["address_postcode"] = func() string { return fake.Address().PostCode() }
datas["address_secondaryaddress"] = func() string { return fake.Address().SecondaryAddress() }
datas["address_state"] = func() string { return fake.Address().State() }
datas["address_stateabbr"] = func() string { return fake.Address().StateAbbr() }
datas["address_streetaddress"] = func() string { return fake.Address().StreetAddress() }
datas["address_streetname"] = func() string { return fake.Address().StreetName() }
datas["address_streetsuffix"] = func() string { return fake.Address().StreetSuffix() }
datas["app_name"] = func() string { return fake.App().Name() }
datas["app_version"] = func() string { return fake.App().Version() }
datas["beer_alcohol"] = func() string { return fake.Beer().Alcohol() }
datas["beer_blg"] = func() string { return fake.Beer().Blg() }
datas["beer_hop"] = func() string { return fake.Beer().Hop() }
datas["beer_ibu"] = func() string { return fake.Beer().Ibu() }
datas["beer_malt"] = func() string { return fake.Beer().Malt() }
datas["beer_name"] = func() string { return fake.Beer().Name() }
datas["beer_style"] = func() string { return fake.Beer().Style() }
datas["blood_name"] = func() string { return fake.Blood().Name() }
datas["boolean_bool"] = func() string {
if fake.Boolean().Bool() {
return "1"
} else {
return "0"
}
}
datas["car_category"] = func() string { return fake.Car().Category() }
datas["car_fueltype"] = func() string { return fake.Car().FuelType() }
datas["car_maker"] = func() string { return fake.Car().Maker() }
datas["car_model"] = func() string { return fake.Car().Model() }
datas["car_plate"] = func() string { return fake.Car().Plate() }
datas["car_transmissiongear"] = func() string { return fake.Car().TransmissionGear() }
datas["color_css"] = func() string { return fake.Color().CSS() }
datas["color_colorname"] = func() string { return fake.Color().ColorName() }
datas["color_hex"] = func() string { return fake.Color().Hex() }
datas["color_rgb"] = func() string { return fake.Color().RGB() }
datas["color_safecolorname"] = func() string { return fake.Color().SafeColorName() }
datas["company_bs"] = func() string { return fake.Company().BS() }
datas["company_catchphrase"] = func() string { return fake.Company().CatchPhrase() }
datas["company_ein"] = func() string { return strconv.Itoa(fake.Company().EIN()) }
datas["company_jobtitle"] = func() string { return fake.Company().JobTitle() }
datas["company_name"] = func() string { return fake.Company().Name() }
datas["company_suffix"] = func() string { return fake.Company().Suffix() }
datas["crypto_bech32address"] = func() string { return fake.Crypto().Bech32Address() }
datas["crypto_bitcoinaddress"] = func() string { return fake.Crypto().BitcoinAddress() }
datas["crypto_etheriumaddress"] = func() string { return fake.Crypto().EtheriumAddress() }
datas["crypto_p2pkhaddress"] = func() string { return fake.Crypto().P2PKHAddress() }
datas["crypto_p2shaddress"] = func() string { return fake.Crypto().P2SHAddress() }
datas["currency_code"] = func() string { return fake.Currency().Code() }
datas["currency_country"] = func() string { return fake.Currency().Country() }
datas["currency_currency"] = func() string { return fake.Currency().Currency() }
datas["currency_number"] = func() string { return strconv.Itoa(fake.Currency().Number()) }
datas["emoji_emoji"] = func() string { return fake.Emoji().Emoji() }
datas["emoji_emojicode"] = func() string { return fake.Emoji().EmojiCode() }
datas["file_extension"] = func() string { return fake.File().Extension() }
datas["file_filenamewithextension"] = func() string { return fake.File().FilenameWithExtension() }
datas["food_fruit"] = func() string { return fake.Food().Fruit() }
datas["food_vegetable"] = func() string { return fake.Food().Vegetable() }
datas["gamer_tag"] = func() string { return fake.Gamer().Tag() }
datas["gender_abbr"] = func() string { return fake.Gender().Abbr() }
datas["gender_name"] = func() string { return fake.Gender().Name() }
datas["genre_name"] = func() string { return fake.Genre().Name() }
datas["internet_companyemail"] = func() string { return fake.Internet().CompanyEmail() }
datas["internet_domain"] = func() string { return fake.Internet().Domain() }
datas["internet_email"] = func() string { return fake.Internet().Email() }
datas["internet_freeemail"] = func() string { return fake.Internet().FreeEmail() }
datas["internet_freeemaildomain"] = func() string { return fake.Internet().FreeEmailDomain() }
datas["internet_httpmethod"] = func() string { return fake.Internet().HTTPMethod() }
datas["internet_ipv4"] = func() string { return fake.Internet().Ipv4() }
datas["internet_ipv6"] = func() string { return fake.Internet().Ipv6() }
datas["internet_localipv4"] = func() string { return fake.Internet().LocalIpv4() }
datas["internet_macaddress"] = func() string { return fake.Internet().MacAddress() }
datas["internet_password"] = func() string { return fake.Internet().Password() }
datas["internet_query"] = func() string { return fake.Internet().Query() }
datas["internet_safeemail"] = func() string { return fake.Internet().SafeEmail() }
datas["internet_slug"] = func() string { return fake.Internet().Slug() }
datas["internet_statuscode"] = func() string { return strconv.Itoa(fake.Internet().StatusCode()) }
datas["internet_statuscodemessage"] = func() string { return fake.Internet().StatusCodeMessage() }
datas["internet_statuscodewithmessage"] = func() string { return fake.Internet().StatusCodeWithMessage() }
datas["internet_tld"] = func() string { return fake.Internet().TLD() }
datas["internet_url"] = func() string { return fake.Internet().URL() }
datas["internet_user"] = func() string { return fake.Internet().User() }
datas["language_language"] = func() string { return fake.Language().Language() }
datas["language_languageabbr"] = func() string { return fake.Language().LanguageAbbr() }
datas["language_programminglanguage"] = func() string { return fake.Language().ProgrammingLanguage() }
datas["mimetype_mimetype"] = func() string { return fake.MimeType().MimeType() }
datas["music_genre"] = func() string { return fake.Music().Genre() }
datas["music_name"] = func() string { return fake.Music().Name() }
datas["payment_creditcardexpirationdatestring"] = func() string { return fake.Payment().CreditCardExpirationDateString() }
datas["payment_creditcardnumber"] = func() string { return fake.Payment().CreditCardNumber() }
datas["payment_creditcardtype"] = func() string { return fake.Payment().CreditCardType() }
datas["person_firstname"] = func() string { return fake.Person().FirstName() }
datas["person_firstnamefemale"] = func() string { return fake.Person().FirstNameFemale() }
datas["person_firstnamemale"] = func() string { return fake.Person().FirstNameMale() }
datas["person_gender"] = func() string { return fake.Person().Gender() }
datas["person_lastname"] = func() string { return fake.Person().LastName() }
datas["person_name"] = func() string { return fake.Person().Name() }
datas["person_namefemale"] = func() string { return fake.Person().NameFemale() }
datas["person_namemale"] = func() string { return fake.Person().NameMale() }
datas["person_ssn"] = func() string { return fake.Person().SSN() }
datas["person_suffix"] = func() string { return fake.Person().Suffix() }
datas["person_title"] = func() string { return fake.Person().Title() }
datas["pet_cat"] = func() string { return fake.Pet().Cat() }
datas["pet_dog"] = func() string { return fake.Pet().Dog() }
datas["pet_name"] = func() string { return fake.Pet().Name() }
datas["phone_areacode"] = func() string { return fake.Phone().AreaCode() }
datas["phone_e164number"] = func() string { return fake.Phone().E164Number() }
datas["phone_exchangecode"] = func() string { return fake.Phone().ExchangeCode() }
datas["phone_number"] = func() string { return fake.Phone().Number() }
datas["phone_tollfreeareacode"] = func() string { return fake.Phone().TollFreeAreaCode() }
datas["phone_toolfreenumber"] = func() string { return fake.Phone().ToolFreeNumber() }
datas["time_ampm"] = func() string { return fake.Time().AmPm() }
datas["time_century"] = func() string { return fake.Time().Century() }
datas["time_dayofmonth"] = func() string { return strconv.Itoa(fake.Time().DayOfMonth()) }
datas["time_monthname"] = func() string { return fake.Time().MonthName() }
datas["time_timezone"] = func() string { return fake.Time().Timezone() }
datas["time_year"] = func() string { return strconv.Itoa(fake.Time().Year()) }
datas["useragent_chrome"] = func() string { return fake.UserAgent().Chrome() }
datas["useragent_firefox"] = func() string { return fake.UserAgent().Firefox() }
datas["useragent_internetexplorer"] = func() string { return fake.UserAgent().InternetExplorer() }
datas["useragent_opera"] = func() string { return fake.UserAgent().Opera() }
datas["useragent_safari"] = func() string { return fake.UserAgent().Safari() }
datas["useragent_useragent"] = func() string { return fake.UserAgent().UserAgent() }
manager.Fakers = datas
return manager
}
func (f *FakeManager) IsValidFaker(name string) bool {
if name == "" || name == "_" || name == "null" {
return true
}
_, exists := f.Fakers[name]
return exists
}