socialnetworknews-api

git clone git://archive.git.mtrnord.blog/SocialNetworkNews/socialnetworknews-api.git
Log | Files | Refs | LICENSE

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 }