Open 3z3qu13l opened 1 week ago
Fix NIR to match birthdate
alias genId='curl -s "https://randomuser.me/api/?nat=fr" | jq '"'"'.results[0] | {gender, firstName: .name.first, lastName: .name.last, birthdate: (.dob.date | sub("T.*"; "") | split("-") | [.[2], .[1], .[0]] | join("/")), email, phone, nir: ((.id.value | split(" ") | .[0] | tonumber) + 100000000 | tostring), cell: (.cell | gsub("-"; "")), location: {street: .location.street, city: .location.city, postcode: .location.postcode}}'"'"''
You'ld have to generate an API token to get a valid siret
generate_iban_and_bic() {
local random_number=$((RANDOM % 9000 + 1000))
local iban="FR76${random_number}30006000011234567890189"
local bic="FAKEBIC${iban:4:4}"
echo "{\"iban\": \"${iban}\", \"bic\": \"${bic}\"}"
}
generate_random_siret() {
# Create an account in https://api.insee.fr/catalogue/
# Generate an access token in https://api.insee.fr/catalogue/site/themes/wso2/subthemes/insee/pages/application.jag?name=DefaultApplication
# Subscribe to api https://api.insee.fr/catalogue/site/themes/wso2/subthemes/insee/pages/item-info.jag?name=Sirene&version=V3.11&provider=insee
apiToken="700d0b4c-110f-30e9-ae7a-xxxxxxxxxx"
response=$(curl -s -H "Authorization: Bearer $apiToken" \
"https://api.insee.fr/entreprises/sirene/V3.11/siret?champs=denominationUniteLegale%2Csiret&masquerValeursNulles=true&nombre=200")
if [ -z "$response" ]; then
echo '{"siret": "No API response", "bic": "No API response"}'
return 1
fi
result=$(echo "$response" | jq -c '[.etablissements[] | select(.uniteLegale.denominationUniteLegale != null) | {siret: .siret, name: .uniteLegale.denominationUniteLegale}] | first')
if [ -z "$result" ]; then
echo '{"siret": "Not found", "bic": "Not found"}'
return 1
fi
echo "$result"
}
alias genId='curl -s "https://randomuser.me/api/?nat=fr" | jq --argjson bank "$(generate_iban_and_bic)" --argjson siret "$(generate_random_siret)" '"'"'.results[0] | {gender, firstName: .name.first, lastName: .name.last, birthdate: (.dob.date | sub("T.*"; "") | split("-") | [.[2], .[1], .[0]] | join("/")), email, contact: {phone: (.phone | gsub("-"; "")), cell: (.cell | gsub("-"; ""))}, nir: ((.id.value | split(" ") | .[0] | tonumber) + 100000000 | tostring), bank: {IBAN: $bank.iban, BIC: $bank.bic}, entreprise: {siret: $siret.siret, name: $siret.name}, location: {street: .location.street, city: .location.city, postcode: .location.postcode}}'"'"''
Output:
{
"gender": "male",
"firstName": "Mathys",
"lastName": "Jean",
"birthdate": "18/12/1960",
"email": "mathys.jean@example.com",
"contact": {
"phone": "0416957977",
"cell": "0626048574"
},
"nir": "1601231156023",
"bank": {
"IBAN": "FR76286730006000011234567890189",
"BIC": "FAKEBIC2867"
},
"entreprise": {
"siret": "31868423000010",
"name": "STRINGS MUSIC IMPORT"
},
"location": {
"street": {
"number": 8271,
"name": "Rue Denfert-Rochereau"
},
"city": "Mulhouse",
"postcode": 29240
}
}
Used for testing purpose
alias genId='curl -s "https://randomuser.me/api/?nat=fr" | jq '"'"'.results[0] | {gender, firstName: .name.first, lastName: .name.last, birthdate: (.dob.date | sub("T.*"; "") | split("-") | [.[2], .[1], .[0]] | join("/")), email, phone, nir: .id.value, cell: (.cell | gsub("-"; "")), location: {street: .location.street, city: .location.city, postcode: .location.postcode}}'"'"''