-
Notifications
You must be signed in to change notification settings - Fork 1
/
server.go
117 lines (102 loc) · 4.88 KB
/
server.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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
package main
import (
"MatchaServer/apiServer"
"MatchaServer/common"
"net/http"
"os"
"os/signal"
"strconv"
"syscall"
)
func router(server *apiServer.Server) http.Handler {
println(common.GREEN + "tracing router" + common.NO_COLOR)
mux := http.NewServeMux()
// GET
mux.Handle("/interests/get/", server.GetMethodMiddleWare(
http.HandlerFunc(server.InterestsGet)))
mux.Handle("/ws/auth/", server.GetMethodMiddleWare(
http.HandlerFunc(server.WebSocketAuth)))
// PUT
mux.Handle("/user/create/", server.PutMethodMiddleWare(
http.HandlerFunc(server.UserCreate)))
mux.Handle("/photo/upload/", server.PutMethodMiddleWare(
server.CheckAuthMiddleWare(http.HandlerFunc(server.PhotoUpload))))
mux.Handle("/like/set/", server.PutMethodMiddleWare(
server.CheckAuthMiddleWare(http.HandlerFunc(server.LikeSet))))
mux.Handle("/ignore/set/", server.PutMethodMiddleWare(
server.CheckAuthMiddleWare(http.HandlerFunc(server.IgnoreSet))))
mux.Handle("/claim/set/", server.PutMethodMiddleWare(
server.CheckAuthMiddleWare(http.HandlerFunc(server.ClaimSet))))
// POST
mux.Handle("/user/auth/", server.PostMethodMiddleWare(
http.HandlerFunc(server.UserAuth)))
mux.Handle("/photo/download/", server.PostMethodMiddleWare(
server.CheckAuthMiddleWare(http.HandlerFunc(server.PhotoDownload))))
mux.Handle("/user/get/friends/", server.PostMethodMiddleWare(
server.CheckAuthMiddleWare(http.HandlerFunc(server.UserGetFriends))))
mux.Handle("/user/get/ignored/", server.PostMethodMiddleWare(
server.CheckAuthMiddleWare(http.HandlerFunc(server.UserGetIgnored))))
mux.Handle("/user/get/claimed/", server.PostMethodMiddleWare(
server.CheckAuthMiddleWare(http.HandlerFunc(server.UserGetClaimed))))
mux.Handle("/user/get/likedMe/", server.PostMethodMiddleWare(
server.CheckAuthMiddleWare(http.HandlerFunc(server.UserGetLikedMe))))
mux.Handle("/user/get/", server.PostMethodMiddleWare(
server.CheckAuthMiddleWare(http.HandlerFunc(server.UserGet))))
mux.Handle("/search/", server.PostMethodMiddleWare(
server.CheckAuthMiddleWare(http.HandlerFunc(server.Search))))
mux.Handle("/message/get/", server.PostMethodMiddleWare(
server.CheckAuthMiddleWare(http.HandlerFunc(server.MessageGet))))
mux.Handle("/notification/get/", server.PostMethodMiddleWare(
server.CheckAuthMiddleWare(http.HandlerFunc(server.NotificationGet))))
mux.Handle("/history/scansOfMe/", server.PostMethodMiddleWare(
server.CheckAuthMiddleWare(http.HandlerFunc(server.HistoryScans))))
mux.Handle("/history/myViews/", server.PostMethodMiddleWare(
server.CheckAuthMiddleWare(http.HandlerFunc(server.HistoryViews))))
mux.Handle("/message/get/active/", server.PostMethodMiddleWare(
server.CheckAuthMiddleWare(http.HandlerFunc(server.MessageGetActive))))
// PATCH
mux.Handle("/user/update/", server.PatchMethodMiddleWare(
server.CheckAuthMiddleWare(http.HandlerFunc(server.UserUpdate))))
mux.Handle("/message/set/inactive/", server.PatchMethodMiddleWare(
server.CheckAuthMiddleWare(http.HandlerFunc(server.MessageSetInactive))))
// PATCH / POST / GET
mux.Handle("/user/update/status/", server.PatchPostGetMethodMiddleWare(
http.HandlerFunc(server.UserUpdateStatus)))
// DELETE
mux.Handle("/user/delete/", server.DeleteMethodMiddleWare(
server.CheckAuthMiddleWare(http.HandlerFunc(server.UserDelete))))
mux.Handle("/message/delete/", server.DeleteMethodMiddleWare(
server.CheckAuthMiddleWare(http.HandlerFunc(server.MessageDelete))))
mux.Handle("/notification/delete/", server.DeleteMethodMiddleWare(
server.CheckAuthMiddleWare(http.HandlerFunc(server.NotificationDelete))))
mux.Handle("/notification/delete/all/", server.DeleteMethodMiddleWare(
server.CheckAuthMiddleWare(http.HandlerFunc(server.NotificationDeleteAll))))
mux.Handle("/like/unset/", server.DeleteMethodMiddleWare(
server.CheckAuthMiddleWare(http.HandlerFunc(server.LikeUnset))))
mux.Handle("/ignore/unset/", server.DeleteMethodMiddleWare(
server.CheckAuthMiddleWare(http.HandlerFunc(server.IgnoreUnset))))
mux.Handle("/claim/unset/", server.DeleteMethodMiddleWare(
server.CheckAuthMiddleWare(http.HandlerFunc(server.ClaimUnset))))
mux.Handle("/photo/delete/", server.DeleteMethodMiddleWare(
server.CheckAuthMiddleWare(http.HandlerFunc(server.PhotoDelete))))
serveMux := server.PanicMiddleWare(mux)
return serveMux
}
func main() {
server, err := apiServer.New("config/")
if err != nil {
println(common.RED + "Server cannot start - " + err.Error() + common.NO_COLOR)
} else {
mux := router(server)
println(common.GREEN + "starting server at :" + strconv.Itoa(server.Port) + common.NO_COLOR)
go func() {
http.ListenAndServe(":"+strconv.Itoa(server.Port), mux)
println(common.RED + "Порт " + strconv.Itoa(server.Port) + " занят" + common.NO_COLOR)
}()
quit := make(chan os.Signal, 1)
signal.Notify(quit, syscall.SIGTERM, syscall.SIGINT)
<-quit
server.Db.Close()
println("\n" + common.GREEN + "db connection was successfully closed" + common.NO_COLOR)
}
}