Skip to content
Open
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 13 additions & 2 deletions examples/mock_example.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,16 @@ import (
"github.com/brazzcore/mocai/pkg/mocai/entities/address"
"github.com/brazzcore/mocai/pkg/mocai/entities/person"
"github.com/brazzcore/mocai/pkg/mocai/entities/phone"
"github.com/brazzcore/mocai/pkg/mocai/helper"
"github.com/brazzcore/mocai/pkg/mocai/translations"
)

func GenerateMockExample() {
// Set the language to pt-BR
translations.SetLanguage("ptbr")
// set the language
var languageID string
fmt.Print("Enter your language : ")
fmt.Scan(&languageID)
translations.SetLanguage(languageID) //test for : ptbr,enin
Comment on lines +16 to +20
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Improve language input validation.

The current implementation lacks validation for supported languages and error handling for the input operation.

Apply this diff to add validation:

-	var languageID string
-	fmt.Print("Enter your language : ")
-	fmt.Scan(&languageID)
-	translations.SetLanguage(languageID) //test for : ptbr,enin
+	var languageID string
+	supportedLanguages := map[string]bool{"ptbr": true, "enin": true}
+	for {
+		fmt.Print("Enter your language (supported: ptbr, enin): ")
+		if _, err := fmt.Scan(&languageID); err != nil {
+			fmt.Println("Error reading input:", err)
+			continue
+		}
+		if supportedLanguages[languageID] {
+			break
+		}
+		fmt.Println("Unsupported language. Please try again.")
+	}
+	translations.SetLanguage(languageID)
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
// set the language
var languageID string
fmt.Print("Enter your language : ")
fmt.Scan(&languageID)
translations.SetLanguage(languageID) //test for : ptbr,enin
// set the language
var languageID string
supportedLanguages := map[string]bool{"ptbr": true, "enin": true}
for {
fmt.Print("Enter your language (supported: ptbr, enin): ")
if _, err := fmt.Scan(&languageID); err != nil {
fmt.Println("Error reading input:", err)
continue
}
if supportedLanguages[languageID] {
break
}
fmt.Println("Unsupported language. Please try again.")
}
translations.SetLanguage(languageID)


// Generate mock data
person_mock, err := person.GeneratePerson()
Expand All @@ -39,5 +43,12 @@ func GenerateMockExample() {
address_mock.Street, address_mock.Number, address_mock.City, address_mock.State, address_mock.UF, address_mock.ZIP)
fmt.Printf("Phone: (%s) %s\n", phone_mock.AreaCode, phone_mock.Number)

if languageID == "enin" {
aadhar_card := helper.GenerateAadhaarNumber()
pan_card := helper.GenerateRandomPAN()
fmt.Printf("Adhar card: %s\n", aadhar_card)
fmt.Printf("Pan card: %s", pan_card)
}
Comment on lines +47 to +52
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Fix inconsistent error handling and typo.

  1. Handle potential errors from GenerateAadhaarNumber and GenerateRandomPAN.
  2. Fix the typo in "Adhar" vs "Aadhaar".

Apply this diff to improve the implementation:

 	if languageID == "enin" {
 		aadhar_card := adhar.GenerateAadhaarNumber()
+		if aadhar_card == "" {
+			fmt.Println("Error generating Aadhaar number")
+			return
+		}
 		pan_card := pan.GenerateRandomPAN()
+		if pan_card == "" {
+			fmt.Println("Error generating PAN number")
+			return
+		}
-		fmt.Printf("Adhar card: %s\n", aadhar_card)
+		fmt.Printf("Aadhaar card: %s\n", aadhar_card)
 		fmt.Printf("Pan card: %s", pan_card)
 	}
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
if languageID == "enin" {
aadhar_card := adhar.GenerateAadhaarNumber()
pan_card := pan.GenerateRandomPAN()
fmt.Printf("Adhar card: %s\n", aadhar_card)
fmt.Printf("Pan card: %s", pan_card)
}
if languageID == "enin" {
aadhar_card := adhar.GenerateAadhaarNumber()
if aadhar_card == "" {
fmt.Println("Error generating Aadhaar number")
return
}
pan_card := pan.GenerateRandomPAN()
if pan_card == "" {
fmt.Println("Error generating PAN number")
return
}
fmt.Printf("Aadhaar card: %s\n", aadhar_card)
fmt.Printf("Pan card: %s", pan_card)
}


fmt.Println(constants.Footer)
}
227 changes: 227 additions & 0 deletions pkg/mocai/entities/address/mocks/enin/cities.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,227 @@
package enin

// Cities contains a list of 200 distinct cities names in india (excluding capitals).
var Cities = []string{
"Mumbai",
"Delhi",
"Bangalore",
"Hyderabad",
"Ahmedabad",
"Chennai",
"Kolkata",
"Pune",
"Jaipur",
"Surat",
"Lucknow",
"Kanpur",
"Nagpur",
"Indore",
"Thane",
"Bhopal",
"Visakhapatnam",
"Patna",
"Vadodara",
"Ghaziabad",
"Ludhiana",
"Agra",
"Nashik",
"Ranchi",
"Faridabad",
"Meerut",
"Rajkot",
"Kalyan-Dombivli",
"Vasai-Virar",
"Varanasi",
"Srinagar",
"Aurangabad",
"Dhanbad",
"Amritsar",
"Navi Mumbai",
"Allahabad",
"Howrah",
"Gwalior",
"Jabalpur",
"Coimbatore",
"Vijayawada",
"Jodhpur",
"Madurai",
"Raipur",
"Kota",
"Guwahati",
"Chandigarh",
"Solapur",
"Hubli-Dharwad",
"Tiruchirappalli",
"Dehradun",
"Salem",
"Warangal",
"Thiruvananthapuram",
"Guntur",
"Bhiwandi",
"Saharanpur",
"Gorakhpur",
"Bikaner",
"Amravati",
"Noida",
"Jamshedpur",
"Bhilai",
"Cuttack",
"Firozabad",
"Kochi",
"Nellore",
"Bhavnagar",
"Dehri",
"Kurnool",
"Ajmer",
"Jhansi",
"Ujjain",
"Silchar",
"Jalandhar",
"Bilaspur",
"Thanjavur",
"Bellary",
"Muzaffarpur",
"Tirunelveli",
"Malegaon",
"Akola",
"Rajahmundry",
"Agartala",
"Bhagalpur",
"Latur",
"Durgapur",
"Korba",
"Dhule",
"Rourkela",
"Anantapur",
"Karimnagar",
"Etawah",
"Ambarnath",
"Bharatpur",
"Begusarai",
"New Delhi",
"Gandhinagar",
"Yamunanagar",
"Baranagar",
"Bhind",
"Shivpuri",
"Tumkur",
"Aligarh",
"Sikar",
"Udaipur",
"Bulandshahr",
"Sirsa",
"Moradabad",
"Shahjahanpur",
"Rampur",
"Kharagpur",
"Kishanganj",
"Maheshtala",
"Sambalpur",
"Bilimora",
"Tirupati",
"Bhiwani",
"Ratlam",
"Chhapra",
"Ujjain",
"Hardwar",
"Sitapur",
"Burhanpur",
"Bhatinda",
"Malda",
"Baripada",
"Satna",
"Chhindwara",
"Hosur",
"Katihar",
"Rewa",
"Nagaur",
"Chittoor",
"Bhadrak",
"Jagdalpur",
"Vidisha",
"Bidar",
"Porbandar",
"Ballia",
"Bhagalpur",
"Gaya",
"Darbhanga",
"Rohtak",
"Kollam",
"Bardhaman",
"Bankura",
"Barmer",
"Midnapore",
"Hazaribagh",
"Koraput",
"Balasore",
"Nagaon",
"Tinsukia",
"Dibrugarh",
"Jorhat",
"Bongaigaon",
"Tezpur",
"Sivasagar",
"Silchar",
"Imphal",
"Dimapur",
"Aizawl",
"Kohima",
"Itanagar",
"Agartala",
"Gangtok",
"Panaji",
"Shillong",
"Port Blair",
"Puducherry",
"Kavaratti",
"Daman",
"Silvassa",
"Dispur",
"Shillong",
"Muzaffarnagar",
"Bhuj",
"Amroha",
"Churu",
"Alwar",
"Jalgaon",
"Fatehpur",
"Sehore",
"Vidisha",
"Hajipur",
"Bhind",
"Chhatarpur",
"Khandwa",
"Daltonganj",
"Raigarh",
"Shahdol",
"Chandrapur",
"Parbhani",
"Sangli",
"Loni",
"Yavatmal",
"Satara",
"Jalna",
"Nanded",
"Hinganghat",
"Gondia",
"Bhusawal",
"Ichalkaranji",
"Betul",
"Raichur",
"Bagalkot",
"Chikmagalur",
"Davanagere",
"Mandya",
"Shivamogga",
"Tumkur",
"Kolar",
"Koppal",
"Hassan",
"Bijapur",
"Ballari",
"Gadag",
"Bidar",
"Karwar",
"Kodagu",
"Chamrajnagar",
}
Comment on lines +4 to +227
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Remove duplicate city entries.

The following cities appear multiple times in the list:

  • "Shillong" (lines 173, 180)
  • "Vidisha" (lines 141, 189)
  • "Bhind" (lines 105, 191)
  • "Silchar" (lines 78, 164)
  • "Agartala" (lines 88, 170)
  • "Bidar" (lines 142, 223)
  • "Ujjain" (lines 77, 125)
  • "Bhagalpur" (lines 89, 145)
  • "Tumkur" (lines 107, 216)

Please remove the duplicates to maintain data integrity.

33 changes: 33 additions & 0 deletions pkg/mocai/entities/address/mocks/enin/states.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package enin

// States contains a list of all indian states.
var States = []string{
"Andhra Pradesh",
"Arunachal Pradesh",
"Assam",
"Bihar",
"Chhattisgarh",
"Goa",
"Gujarat",
"Haryana",
"Himachal Pradesh",
"Jharkhand",
"Karnataka",
"Kerala",
"Madhya Pradesh",
"Maharashtra",
"Manipur",
"Meghalaya",
"Mizoram",
"Nagaland",
"Odisha",
"Punjab",
"Rajasthan",
"Sikkim",
"Tamil Nadu",
"Telangana",
"Tripura",
"Uttar Pradesh",
"Uttarakhand",
"West Bengal",
}
Loading
Loading