http

package
v0.0.0-...-3b05dd8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 20, 2021 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SiteRoot                   = "/"
	TweetsURI                  = "/v1/tweets"
	EchoURI                    = "/v1/form"
	RandTweetURI               = "/v1/randTweet"
	InstagramUserURI           = "/v1/instagram/users/{cseName}"
	InstagramRandUserURI       = "/v1/instagram/users/random"
	InstagramRandUserGenderURI = "/v1/instagram/users/random/{gender}"
	InstagramSessionURI        = "/v1/instagram/sessions/{cseName}"
	NYTimesBestSellersURI      = "/v1/nyTimes/bestSellers"
	BookCoverURI               = "/v1/nyTimes/bookCovers/{isbn}"
	FileUploadURI              = "/v1/files"
	ProjectStoreURI            = "/v1/projects/{groupName}/{keyName}"
	PolygonURI                 = "/v1/polygon"
	GetProxyURI                = "/v1/getProxy/{url}"
)
View Source
const (
	InternalServerErrMessage = "Internal server error"
)

Variables

View Source
var (
	OK = &struct{}{}
)

Functions

func GetPostEcho

func GetPostEcho(w http.ResponseWriter, r *http.Request, method string)

func WriteBadRequest

func WriteBadRequest(w http.ResponseWriter, r *http.Request, userMessage string)

func WriteError

func WriteError(w http.ResponseWriter, r *http.Request, userMessage string, httpErrorCode StatusCode)

func WriteJSON

func WriteJSON(w http.ResponseWriter, r *http.Request, payload interface{})

func WriteResponse

func WriteResponse(w io.Writer, r *http.Request, resBytes []byte)

func WriteServerError

func WriteServerError(w http.ResponseWriter, r *http.Request, err error)

Types

type API

type API struct {
	Router               Router
	TweetService         TweetService
	InstagramUserService InstagramUserService
	ProjectStoreService  ProjectStoreService
	S3Repository         S3Repository
	NyTimesClient        NyTimesClient
	PolygonClient        PolygonClient
	ProxyURLClient       ProxyURLClient
}

func NewAPIRouter

func NewAPIRouter(httpRouter Router, tweetService TweetService,
	instagramUserService InstagramUserService,
	nyTimesClient NyTimesClient,
	polygonClient PolygonClient,
	proxyURLClient ProxyURLClient,
	projectStoreService ProjectStoreService,
	s3Repository S3Repository) *API

func (*API) EnableCORS

func (a *API) EnableCORS()

func (*API) GetInstagramUsers

func (a *API) GetInstagramUsers(w http.ResponseWriter, r *http.Request)

func (*API) GetNyTimesBestSellers

func (a *API) GetNyTimesBestSellers(w http.ResponseWriter, r *http.Request)

func (*API) GetNyTimesBookCover

func (a *API) GetNyTimesBookCover(w http.ResponseWriter, r *http.Request)

func (*API) GetPolygon

func (a *API) GetPolygon(w http.ResponseWriter, r *http.Request)

func (*API) GetProjectKeyValue

func (a *API) GetProjectKeyValue(w http.ResponseWriter, r *http.Request)

func (*API) GetProxyURL

func (a *API) GetProxyURL(w http.ResponseWriter, r *http.Request)

func (*API) GetRandInstagramUser

func (a *API) GetRandInstagramUser(w http.ResponseWriter, r *http.Request)

func (*API) GetRandInstagramUserByGender

func (a *API) GetRandInstagramUserByGender(w http.ResponseWriter, r *http.Request)

func (*API) GetRandTweet

func (a *API) GetRandTweet(w http.ResponseWriter, r *http.Request)

func (*API) GetRoot

func (a *API) GetRoot(w http.ResponseWriter, r *http.Request)

func (*API) GetTweets

func (a *API) GetTweets(w http.ResponseWriter, r *http.Request)

func (*API) PostFileUpload

func (a *API) PostFileUpload(w http.ResponseWriter, r *http.Request)

func (*API) PostInstagramSession

func (a *API) PostInstagramSession(w http.ResponseWriter, r *http.Request)

func (*API) PostInstagramUser

func (a *API) PostInstagramUser(w http.ResponseWriter, r *http.Request)

func (*API) PostTweet

func (a *API) PostTweet(w http.ResponseWriter, r *http.Request)

func (*API) SetProjectKeyValue

func (a *API) SetProjectKeyValue(w http.ResponseWriter, r *http.Request)

type APIVersion

type APIVersion struct {
	API     string   `json:"api"`
	Version string   `json:"version"`
	URLS    []string `json:"urls"`
}

type ErrorMessage

type ErrorMessage struct {
	Code    int    `json:"code"`
	Message string `json:"message"`
}

type InstagramUserService

type InstagramUserService interface {
	AddUser(cseName string, user instagram.User) error
	GetUsers(string) []instagram.User
	GetRandProfile() instagram.RandomUser
	GetRandProfileByGender(gender string) instagram.RandomUser
	IsValidPassword(username string, passwordAttempt string, password string) bool
}

type NyTimesClient

type NyTimesClient interface {
	GetSimpleBestSellers() []nytimes.SimpleBook
	GetBookCoverURL(isbn string) nytimes.BookCoverURL
}

type PolygonClient

type PolygonClient interface {
	GetPolygonPath(path string) []byte
}

type ProjectStoreService

type ProjectStoreService interface {
	GetValue(groupName, keyName string) string
	SetValue(groupName, keyName, value string)
}

type ProxyURLClient

type ProxyURLClient interface {
	GetProxyURL(url string) []byte
}

type Router

type Router interface {
	Use(middleware ...func(http.Handler) http.Handler)
	Route(pattern string, fn func(r chi.Router)) chi.Router
	ServeHTTP(http.ResponseWriter, *http.Request)
}

type S3Repository

type S3Repository interface {
	AddFileToS3(name string, reader *bytes.Reader) (string, error)
}

type StatusCode

type StatusCode int

type TweetService

type TweetService interface {
	GetTweets() []*twitter.Tweet
	AddTweet(tweetText string) (*twitter.Tweet, error)
	AddRandTweet() (*twitter.Tweet, error)
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL