package main import ( "context" "log" "net/http" "go-socket/packages/httpRequest" "go-socket/packages/minio" "go-socket/packages/postgresql" "go-socket/packages/wsServer" ) func withCORS(h http.HandlerFunc) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { w.Header().Set("Access-Control-Allow-Origin", "*") w.Header().Set("Access-Control-Allow-Headers", "token, Content-Type") if r.Method == http.MethodOptions { w.WriteHeader(http.StatusNoContent) return } h(w, r) } } func main() { ctx := context.Background() postgresql.Init(ctx) minio.Init(ctx) http.HandleFunc("/new/user", withCORS(httpRequest.HandleUserNew)) http.HandleFunc("/new/connection", withCORS(httpRequest.HandleUserNewConnection)) http.HandleFunc("/new/token", withCORS(httpRequest.HandleUserNewToken)) http.HandleFunc("/new/file", withCORS(httpRequest.HandleAttachmentFileUpload)) http.HandleFunc("/mod/user/profile", withCORS(httpRequest.HandleUserModProfile)) http.HandleFunc("/mod/user/avatar", withCORS(httpRequest.HandleUserModAvatar)) http.HandleFunc("/mod/user/profilebg", withCORS(httpRequest.HandleUserModProfileBg)) http.HandleFunc("/mod/connection/elevate", withCORS(httpRequest.HandleUserElevateConnection)) http.HandleFunc("/get/user", withCORS(httpRequest.HandleUserGetUser)) http.HandleFunc("/get/connections", withCORS(httpRequest.HandleUserGetConnections)) http.HandleFunc("/get/connection/messages", withCORS(httpRequest.HandleUserGetConnectionMessages)) http.HandleFunc("/get/file", withCORS(httpRequest.HandleAttachmentFileDownload)) http.HandleFunc("/get/user/avatar", withCORS(httpRequest.HandleGetUserAvatar)) http.HandleFunc("/get/user/profilebg", withCORS(httpRequest.HandleGetUserProfileBg)) http.HandleFunc("/del/user", withCORS(httpRequest.HandleUserDelete)) http.HandleFunc("/del/connection", withCORS(httpRequest.HandleUserDeleteConnection)) http.HandleFunc("/msg/user", withCORS(httpRequest.HandleDm)) http.HandleFunc("/ws", wsServer.ServeWsConnection) log.Println("listening on :8080") log.Fatal(http.ListenAndServe(":8080", nil)) }