Compare commits
2
Commits
2d888e88ae
...
d00ed5c591
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d00ed5c591
|
||
|
|
013dca68a9
|
+31
-8
@@ -2,14 +2,24 @@ package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strconv"
|
||||
"time"
|
||||
"sync"
|
||||
"booking-app/helper"
|
||||
)
|
||||
|
||||
const conferenceTickets int = 50
|
||||
var conferenceName = "Go Conference"
|
||||
var remainingTickets uint = 50
|
||||
var bookings = make([]map[string]string, 0)
|
||||
var bookings = make([]UserData, 0)
|
||||
|
||||
type UserData struct {
|
||||
firstName string
|
||||
lastName string
|
||||
email string
|
||||
numberOfTickets uint
|
||||
}
|
||||
|
||||
var wg = sync.WaitGroup{}
|
||||
|
||||
func main() {
|
||||
greetUsers()
|
||||
@@ -20,6 +30,8 @@ func main() {
|
||||
|
||||
if isValidName && isValidEmail && isValidNumber {
|
||||
bookTicket(firstName, lastName, email, userTickets)
|
||||
wg.Add(1)
|
||||
go sendTicket(firstName, lastName, email, userTickets)
|
||||
|
||||
fmt.Printf("These are all the first names of our bookings: %v\n", buildFirstNames())
|
||||
|
||||
@@ -39,15 +51,26 @@ func main() {
|
||||
}
|
||||
}
|
||||
}
|
||||
wg.Wait()
|
||||
}
|
||||
|
||||
func sendTicket(firstName string, lastName string, email string, userTickets uint) {
|
||||
time.Sleep(50 * time.Second)
|
||||
ticket := fmt.Sprintf("%v tickets for %v %v", userTickets, firstName, lastName)
|
||||
fmt.Println("#######")
|
||||
fmt.Printf("Sending ticket:\n %v \nto email address %v\n", ticket, email)
|
||||
fmt.Println("######")
|
||||
wg.Done()
|
||||
}
|
||||
|
||||
func bookTicket(firstName string, lastName string, email string, userTickets uint) {
|
||||
// create a map for a user
|
||||
var userData = make(map[string]string)
|
||||
userData["firstName"] = firstName
|
||||
userData["lastName"] = lastName
|
||||
userData["email"] = email
|
||||
userData["numberOfTickets"] = strconv.FormatUint(uint64(userTickets), 10)
|
||||
var userData = UserData {
|
||||
firstName: firstName,
|
||||
lastName: lastName,
|
||||
email: email,
|
||||
numberOfTickets: userTickets,
|
||||
}
|
||||
|
||||
bookings = append(bookings, userData)
|
||||
|
||||
@@ -87,7 +110,7 @@ func greetUsers() {
|
||||
func buildFirstNames() []string {
|
||||
firstNames := []string{}
|
||||
for _, userData := range bookings {
|
||||
firstNames = append(firstNames, userData["firstName"])
|
||||
firstNames = append(firstNames, userData.firstName)
|
||||
}
|
||||
return firstNames
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user