3z3qu13l / laptopSetup

0 stars 0 forks source link

add alias gendId #18

Open 3z3qu13l opened 1 week ago

3z3qu13l commented 1 week ago

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}}'"'"''

DanielGoument commented 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}}'"'"''

3z3qu13l commented 6 days ago

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
  }
}