Merge pull request #1 from senaduka/practice

Practice
This commit is contained in:
Senad Uka
2018-04-25 21:22:29 +02:00
committed by GitHub
3 changed files with 80 additions and 0 deletions

2
.gitignore vendored
View File

@@ -4,6 +4,8 @@
*.so
*.dylib
*.idea
# Test binary, build with `go test -c`
*.test

View File

@@ -1,2 +1,4 @@
# nedim-vjezba-golang
nedim vjezba golang
Uses dependency `go get github.com/gorilla/mux`

76
main.go Normal file
View File

@@ -0,0 +1,76 @@
package main
import (
"github.com/gorilla/mux"
"log"
"net/http"
"encoding/json"
"fmt"
)
type Trend [] struct {
Trends [] struct {
Name string `json:"name,omitempty"`
Url string `json:"url,omitempty"`
PromotedContent string `promoted_content:"lastname,omitempty"`
Query string `json:"query,omitempty"`
TweetVolume int `json:"tweet_volume,omitempty"`
} `json:"trends"`
}
func main() {
router := mux.NewRouter()
router.HandleFunc("/hashtags", GetHashtags).Methods("GET")
router.HandleFunc("/hashtags/{woeid}", GetHashtagFromWOEID).Methods("GET")
log.Fatal(http.ListenAndServe(":8000", router))
}
func GetHashtags(w http.ResponseWriter, r *http.Request) {
body := sendRequestToTwitter("1")
jsonResponse, err := json.Marshal(body)
if err != nil {
panic(err)
}
w.Write(jsonResponse)
}
func GetHashtagFromWOEID(w http.ResponseWriter, r *http.Request) {
params := mux.Vars(r)
body := sendRequestToTwitter(params["woeid"])
jsonResponse, err := json.Marshal(body)
if err != nil {
panic(err)
}
w.Write(jsonResponse)
}
func sendRequestToTwitter(WOEID string) []string {
url := "https://api.twitter.com/1.1/trends/place.json?id=" + WOEID
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer AAAAAAAAAAAAAAAAAAAAAKCtPAAAAAAAq1L5CTf40mf5K%2B7Q6QcWxsyjNvo%3DRkSK8AQBdk6latG2h47XWJVSQdn98heLv8HDLDhviicP3xvodm")
req.Header.Add("Cache-Control", "no-cache")
req.Header.Add("Accept", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
trends := Trend{}
var hashtags []string
err := json.NewDecoder(res.Body).Decode(&trends)
if err != nil {
fmt.Printf("Error while parsing data: %s", err)
}
for _, t := range trends[0].Trends {
hashtags = append(hashtags, t.Name)
println(t.Name)
}
return hashtags
}