Skip to content

Commit b54d131

Browse files
committed
add missing files
1 parent 36580c5 commit b54d131

File tree

2 files changed

+75
-1
lines changed

2 files changed

+75
-1
lines changed

website/cmd/web/main.go

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
package main
22

3-
import "log"
3+
import (
4+
"flag"
5+
"fmt"
6+
"log"
7+
"net/http"
8+
"os"
9+
"time"
10+
)
411

512
type apis struct {
613
users string
@@ -14,3 +21,45 @@ type application struct {
1421
infoLog *log.Logger
1522
apis apis
1623
}
24+
25+
func main() {
26+
27+
// command line flags
28+
serverAddr := flag.String("serverAddr", "", "HTTP server network address")
29+
serverPort := flag.Int("serverPort", 8000, "HTTP server network port")
30+
usersAPI := flag.String("userAPI", "http://localhost:4000/api/users/", "Users API")
31+
moviesAPI := flag.String("moviesAPI", "http://localhost:4000/api/movies", "Movies API")
32+
showtimesAPI := flag.String("showtimesAPI", "http://localhost:4000/api/showtimes/", "Showtimes API")
33+
bookingsAPI := flag.String("bookingsAPI", "http://localhost:4000/api/bookings/", "Bookings API")
34+
35+
// create loggers
36+
infoLog := log.New(os.Stdout, "INFO\t", log.Ldate|log.Ltime)
37+
errLog := log.New(os.Stderr, "ERROR\t", log.Ldate|log.Ltime|log.Lshortfile)
38+
39+
// init app instance
40+
app := &application{
41+
infoLog: infoLog,
42+
errLog: errLog,
43+
apis: apis{
44+
users: *usersAPI,
45+
movies: *moviesAPI,
46+
showtimes: *showtimesAPI,
47+
bookings: *bookingsAPI,
48+
},
49+
}
50+
51+
// init server
52+
serverURI := fmt.Sprintf("%s:%d", *serverAddr, *serverPort)
53+
srv := &http.Server{
54+
Addr: serverURI,
55+
ErrorLog: errLog,
56+
Handler: app.routes(),
57+
IdleTimeout: time.Minute,
58+
ReadTimeout: 5 * time.Second,
59+
WriteTimeout: 10 * time.Second,
60+
}
61+
62+
infoLog.Printf("Starting server on %s\n", serverURI)
63+
err := srv.ListenAndServe()
64+
errLog.Fatal(err)
65+
}

website/cmd/web/routes.go

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package main
2+
3+
import "github.com/gorilla/mux"
4+
5+
func (app *application) routes() *mux.Router {
6+
r := mux.NewRouter()
7+
r.HandleFunc("/", app.home)
8+
// users
9+
r.HandleFunc("/users/list", app.usersList)
10+
r.HandleFunc("/users/view/{id}", app.usersView)
11+
// movies
12+
r.HandleFunc("/movies/list", app.moviesList)
13+
r.HandleFunc("/movies/view/{id}", app.moviesView)
14+
// showtimes
15+
r.HandleFunc("/showtimes/list", app.moviesList)
16+
r.HandleFunc("/showtimes/view/{id}", app.moviesView)
17+
// bookings
18+
r.HandleFunc("/bookings/list", app.bookingsList)
19+
r.HandleFunc("/bookings/view/{id}", app.bookingsView)
20+
21+
// serve static resources
22+
r.PathPrefix("/static/").Handler(app.static("./ui/static/"))
23+
24+
return r
25+
}

0 commit comments

Comments
 (0)