main.go (1868B)
1 package main 2 3 import ( 4 "fmt" 5 web_api "github.com/SocialNetworkNews/SocialNetworkNews_API/api" 6 "github.com/SocialNetworkNews/SocialNetworkNews_API/api/login" 7 "github.com/SocialNetworkNews/SocialNetworkNews_API/config" 8 tLogin "github.com/dghubble/gologin/twitter" 9 "github.com/dghubble/oauth1" 10 twitterOAuth1 "github.com/dghubble/oauth1/twitter" 11 "github.com/gorilla/mux" 12 "github.com/rs/cors" 13 "log" 14 "net/http" 15 ) 16 17 func main() { 18 // api := twitter.NewTwitterAPIStruct() 19 configData, confErr := config.GetConfig() 20 if confErr != nil { 21 log.Fatal(confErr) 22 } 23 24 // api.Login(configData.ConsumerKey, configData.ConsumerSecret) 25 fmt.Println("Logged in!") 26 27 login.TConfig = &oauth1.Config{ 28 ConsumerKey: configData.ConsumerKey, 29 ConsumerSecret: configData.ConsumerSecret, 30 Endpoint: twitterOAuth1.AuthorizeEndpoint, 31 } 32 33 r := mux.NewRouter() 34 r.HandleFunc("/papers", web_api.Papers).Methods("GET", "POST") 35 r.HandleFunc("/paper/{uuid}", web_api.PaperFunc).Methods("GET") 36 37 p := r.PathPrefix("/paper/{uuid}").Subrouter() 38 p.HandleFunc("/yesterday", web_api.Yesterday).Methods("GET") 39 40 lo := r.PathPrefix("/logout").Subrouter() 41 lo.HandleFunc("/twitter", login.LogoutHandler) 42 43 li := r.PathPrefix("/login").Subrouter() 44 li.Handle("/twitter", login.LoginHandler(login.TConfig, nil)) 45 li.Handle("/twitter/callback", tLogin.CallbackHandler(login.TConfig, login.IssueSession(), nil)) 46 li.HandleFunc("/twitter/check", login.IsAuthenticatedHandleFunc) 47 48 // cors.Default() setup the middleware with default options being 49 // all origins accepted with simple methods (GET, POST). See 50 // documentation below for more options. 51 handler := cors.Default().Handler(r) 52 53 go func() { 54 log.Fatal(http.ListenAndServe("127.0.0.1:8500", handler)) 55 }() 56 57 select {} 58 59 /*err := api.StartListening(configData.Lists, configData.Hashtags) 60 if err != nil { 61 fmt.Println(err) 62 }*/ 63 }