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 = ""
+ portfolioTitle = "%v
"
portfolioLink = "%v"
portfolioLanguage = "
%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)
+}