From f86cdb05546ee2c21c9ab90a797652d230d3be1c Mon Sep 17 00:00:00 2001 From: Caleb Gardner Date: Wed, 31 Jul 2024 01:41:14 -0500 Subject: [PATCH] Setting stuff up for the first proper tests --- blog.go | 2 +- internal/blog/portfolio.go | 3 ++- main.go | 10 ++++++++-- portfolio.go | 28 +++++++++++++++++++++++++++- 4 files changed, 38 insertions(+), 5 deletions(-) diff --git a/blog.go b/blog.go index 6be51bf..878ec74 100644 --- a/blog.go +++ b/blog.go @@ -2,5 +2,5 @@ package main const ( blogTitle = "

%v

" - blogAuthor = "

%v

" + blogAuthor = "

%v

" ) diff --git a/internal/blog/portfolio.go b/internal/blog/portfolio.go index 6d083ae..de589fc 100644 --- a/internal/blog/portfolio.go +++ b/internal/blog/portfolio.go @@ -7,6 +7,7 @@ import ( "github.com/CalebQ42/darkstorm-server/internal/backend" "go.mongodb.org/mongo-driver/bson" + "go.mongodb.org/mongo-driver/mongo/options" ) type PortfolioProject struct { @@ -25,7 +26,7 @@ func (b *BlogApp) Projects(languageFilter string) ([]PortfolioProject, error) { if languageFilter != "" { filter["language.language"] = languageFilter } - res, err := b.portfolioCol.Find(context.Background(), filter) + res, err := b.portfolioCol.Find(context.Background(), filter, options.Find().SetSort(bson.M{"_id": 1})) if err != nil { return nil, err } diff --git a/main.go b/main.go index dfbf8a1..916a233 100644 --- a/main.go +++ b/main.go @@ -40,7 +40,7 @@ func main() { setupBackend(mux) setupWebsite(mux) serv := &http.Server{ - Addr: ":443", + Addr: ":4223", Handler: mux, } err := serv.ListenAndServeTLS(filepath.Join(flag.Arg(0), "cert.pem"), filepath.Join(flag.Arg(0), "key.pem")) @@ -78,9 +78,15 @@ func setupBackend(mux *http.ServeMux) { if err != nil { log.Fatal("error setting up backend:", err) } - mux.Handle("/", back) + mux.Handle("api.darkstorm.tech/", back) } func setupWebsite(mux *http.ServeMux) { mux.HandleFunc("GET /files", filesRequest) + mux.HandleFunc("GET /portfolio", portfolioRequest) + mux.HandleFunc("/", mainHandle) +} + +func mainHandle(w http.ResponseWriter, r *http.Request) { + } diff --git a/portfolio.go b/portfolio.go index ce9645b..9a338dd 100644 --- a/portfolio.go +++ b/portfolio.go @@ -1,10 +1,36 @@ package main +import ( + "fmt" + "log" + "net/http" +) + const ( portfolioSelector = "

Language Filter:

" portfolioSelectorOption = "" - portfolioHeader = "

%v

" + portfolioTitle = "

%v

" portfolioLink = "

%v: %v

" portfolioDesc = "

%v

" ) + +func portfolioRequest(w http.ResponseWriter, r *http.Request) { + proj, err := blogApp.Projects(r.URL.Query().Get("lang")) + if err != nil { + log.Println("error getting portfolio projects:", err) + w.WriteHeader(http.StatusInternalServerError) + sendIndexWithContent(w, "Error getting portfolio") + return + } + out := "" + for _, p := range proj { + out += fmt.Sprintf(portfolioTitle, p.Title) + out += fmt.Sprintf(portfolioLink, p.Repository, p.Repository) + for _, l := range p.Languages { + out += fmt.Sprintf(portfolioLanguage, l.Language, l.Dates) + } + out += fmt.Sprintf(portfolioDesc, p.Description) + } + sendIndexWithContent(w, out) +}