This repository has been archived by the owner on Nov 5, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.go
executable file
·94 lines (78 loc) · 3.48 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
// Main package ...
// by: Anggit Muhamad Ginanjar
// STM NEGERI PEMBANGUNAN BANDUNG
package main
import (
"log" // log package
"time" // time package
"net/http" // http for http server handling
"github.com/urfave/negroni" // negroni HTTP Middleware
"github.com/gorilla/mux" // gorilla router handler
"simple_stockapps/controllers" // custom controllers
)
// main function
func main() {
// router variable initialiation using mux gorilla package
router := mux.NewRouter()
// defining main controller object
main_ctrl := new(controllers.MainController)
// defining router handler function
router.HandleFunc("/", main_ctrl.AppMainPage) // routing for "/" (root) handler
router.HandleFunc("/login", main_ctrl.AppLogin) // routing for "/login" handler
router.HandleFunc("/logout", main_ctrl.AppLogout) // routing for "/logout" handler
// ajax handler routers
router.HandleFunc("/navbar", main_ctrl.AppNavbarMainPage)
// ajax sub-url routers
router.HandleFunc("/items", main_ctrl.AppItems)
router.HandleFunc("/reports", main_ctrl.AppReports)
router.HandleFunc("/json_get_my_history", main_ctrl.AppMyHistory)
router.HandleFunc("/users", main_ctrl.AppUsers)
// JSON
router.HandleFunc("/json_get_items", main_ctrl.AppJSONOurItemsData)
router.HandleFunc("/json_get_all_items", main_ctrl.AppJSONGetAllItems)
router.HandleFunc("/json_get_other_items", main_ctrl.AppJSONGetOtherItems)
router.HandleFunc("/json_search_items", main_ctrl.AppJSONSearchData)
router.HandleFunc("/json_get_empty_items", main_ctrl.AppJSONGetEmptyItems)
router.HandleFunc("/json_get_side_notification", main_ctrl.AppJSONGetSideNotificaton)
router.HandleFunc("/json_get_icu", main_ctrl.AppJSONGetICU)
router.HandleFunc("/json_get_irs", main_ctrl.AppJSONGetIRS)
router.HandleFunc("/add_qty", main_ctrl.AppAddQty)
// remove item url
router.HandleFunc("/json_remove_item", main_ctrl.AppJSONRemoveItem)
// update item url
router.HandleFunc("/json_update_item", main_ctrl.AppJSONUpdateItem)
// Pickup item url
router.HandleFunc("/json_pickup_item", main_ctrl.AppPickupItem)
// cancel pickup request
router.HandleFunc("/json_cancel_pick", main_ctrl.AppCancelPickUp)
// add user url
router.HandleFunc("/add_user", main_ctrl.AppAddUser)
router.HandleFunc("/json_new_users", main_ctrl.AppJSONGetNewUsers)
router.HandleFunc("/json_reg_users", main_ctrl.AppJSONGetRegUsers)
router.HandleFunc("/remove_user", main_ctrl.AppRemoveUser)
// settings page url
router.HandleFunc("/settings", main_ctrl.AppSettings)
router.HandleFunc("/setting_user", main_ctrl.AppUpdateSetting)
// settings report/searc_reports
router.HandleFunc("/search_reports", main_ctrl.AppSearchReports)
router.HandleFunc("/show_report", main_ctrl.AppShowReport)
router.HandleFunc("/to_pdf", main_ctrl.AppToPDF)
// defining http middleware using negroni method
middleware := negroni.Classic()
middleware.Use(negroni.NewStatic(http.Dir("static"))) // initialization static file
middleware.UseHandler(router) // using gorilla mux router inside negroni middleware
// initialization http server
HttpServer := &http.Server{
Addr: ":80", // http port that used by web server
Handler: middleware, // using handler as http middleware
ReadTimeout: time.Second * 10,
WriteTimeout: time.Second * 10,
}
// log will tell web server has already opening on port :8080
log.Println("[*] Web server is running on port :80")
HttpError := HttpServer.ListenAndServe()
// catch the error log if any error outhere
if HttpError != nil {
log.Println("HttpError:", HttpError)
}
}