Default page is now the latest blog
This commit is contained in:
@@ -6,7 +6,7 @@ require (
|
|||||||
github.com/1lann/udp-forward v0.0.0-20191015034046-6b774a53ea39
|
github.com/1lann/udp-forward v0.0.0-20191015034046-6b774a53ea39
|
||||||
github.com/CalebQ42/bbConvert v1.0.0
|
github.com/CalebQ42/bbConvert v1.0.0
|
||||||
github.com/CalebQ42/cdr-backend v0.1.0
|
github.com/CalebQ42/cdr-backend v0.1.0
|
||||||
github.com/CalebQ42/stupid-backend/v2 v2.0.2
|
github.com/CalebQ42/stupid-backend/v2 v2.0.3
|
||||||
github.com/CalebQ42/swassistant-backend v0.2.0
|
github.com/CalebQ42/swassistant-backend v0.2.0
|
||||||
go.mongodb.org/mongo-driver v1.13.1
|
go.mongodb.org/mongo-driver v1.13.1
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -4,10 +4,8 @@ github.com/CalebQ42/bbConvert v1.0.0 h1:2WSAxVKhCCMReuU30r3ehLtL6m9aH8sY3wugp9yU
|
|||||||
github.com/CalebQ42/bbConvert v1.0.0/go.mod h1:QJevnlhzUdL3EJB5Lgqoi7rdgtzt/UEamn/QGNoVgkM=
|
github.com/CalebQ42/bbConvert v1.0.0/go.mod h1:QJevnlhzUdL3EJB5Lgqoi7rdgtzt/UEamn/QGNoVgkM=
|
||||||
github.com/CalebQ42/cdr-backend v0.1.0 h1:9245aooAyLxAFO5gfXPgpqOHaYr6NAkMI75v2IlPOVA=
|
github.com/CalebQ42/cdr-backend v0.1.0 h1:9245aooAyLxAFO5gfXPgpqOHaYr6NAkMI75v2IlPOVA=
|
||||||
github.com/CalebQ42/cdr-backend v0.1.0/go.mod h1:N7A+ia+4GDsDMZ3gb5IRZ6CY07gdFfJECtR9csKh5nI=
|
github.com/CalebQ42/cdr-backend v0.1.0/go.mod h1:N7A+ia+4GDsDMZ3gb5IRZ6CY07gdFfJECtR9csKh5nI=
|
||||||
github.com/CalebQ42/stupid-backend/v2 v2.0.1 h1:BACdi/3BEDE/vZsKvhZl1OAA74QnP/Zd5Hb8uNQCjrg=
|
github.com/CalebQ42/stupid-backend/v2 v2.0.3 h1:h6fDA3m1SXcqHebiKyX/VN6W1jGj5ebw/8qrsVY6WvU=
|
||||||
github.com/CalebQ42/stupid-backend/v2 v2.0.1/go.mod h1:skBYIF77NzxYcqZ34V1eSD2/MIZCAGyyINWIkCBrpx8=
|
github.com/CalebQ42/stupid-backend/v2 v2.0.3/go.mod h1:skBYIF77NzxYcqZ34V1eSD2/MIZCAGyyINWIkCBrpx8=
|
||||||
github.com/CalebQ42/stupid-backend/v2 v2.0.2 h1:FB4tbu0opV4kTQfO+56dTHuMPnmgbo8F1joDN1fSU0Q=
|
|
||||||
github.com/CalebQ42/stupid-backend/v2 v2.0.2/go.mod h1:skBYIF77NzxYcqZ34V1eSD2/MIZCAGyyINWIkCBrpx8=
|
|
||||||
github.com/CalebQ42/swassistant-backend v0.2.0 h1:pXUG7+uHP5/lHaqqD6Hc64hOjfPzCGO8TkOpvtDB238=
|
github.com/CalebQ42/swassistant-backend v0.2.0 h1:pXUG7+uHP5/lHaqqD6Hc64hOjfPzCGO8TkOpvtDB238=
|
||||||
github.com/CalebQ42/swassistant-backend v0.2.0/go.mod h1:m67UAzh552+puEc0LngTHzOL3b/Y2B19NzbaVdVeabI=
|
github.com/CalebQ42/swassistant-backend v0.2.0/go.mod h1:m67UAzh552+puEc0LngTHzOL3b/Y2B19NzbaVdVeabI=
|
||||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||||
@@ -18,8 +16,6 @@ github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEW
|
|||||||
github.com/google/go-cmp v0.5.2 h1:X2ev0eStA3AbceY54o37/0PQ/UWqKEiiO2dKL5OPaFM=
|
github.com/google/go-cmp v0.5.2 h1:X2ev0eStA3AbceY54o37/0PQ/UWqKEiiO2dKL5OPaFM=
|
||||||
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||||
github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||||
github.com/google/uuid v1.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4=
|
|
||||||
github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
|
||||||
github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU=
|
github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU=
|
||||||
github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||||
github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
|
github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
|
||||||
@@ -42,16 +38,12 @@ github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7Jul
|
|||||||
github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a h1:fZHgsYlfvtyqToslyjUt3VOPF4J7aK/3MPcK7xp3PDk=
|
github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a h1:fZHgsYlfvtyqToslyjUt3VOPF4J7aK/3MPcK7xp3PDk=
|
||||||
github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a/go.mod h1:ul22v+Nro/R083muKhosV54bj5niojjWZvU8xrevuH4=
|
github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a/go.mod h1:ul22v+Nro/R083muKhosV54bj5niojjWZvU8xrevuH4=
|
||||||
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
||||||
go.mongodb.org/mongo-driver v1.13.0 h1:67DgFFjYOCMWdtTEmKFpV3ffWlFnh+CYZ8ZS/tXWUfY=
|
|
||||||
go.mongodb.org/mongo-driver v1.13.0/go.mod h1:/rGBTebI3XYboVmgz+Wv3Bcbl3aD0QF9zl6kDDw18rQ=
|
|
||||||
go.mongodb.org/mongo-driver v1.13.1 h1:YIc7HTYsKndGK4RFzJ3covLz1byri52x0IoMB0Pt/vk=
|
go.mongodb.org/mongo-driver v1.13.1 h1:YIc7HTYsKndGK4RFzJ3covLz1byri52x0IoMB0Pt/vk=
|
||||||
go.mongodb.org/mongo-driver v1.13.1/go.mod h1:wcDf1JBCXy2mOW0bWHwO/IOYqdca1MPCwDtFu/Z9+eo=
|
go.mongodb.org/mongo-driver v1.13.1/go.mod h1:wcDf1JBCXy2mOW0bWHwO/IOYqdca1MPCwDtFu/Z9+eo=
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||||
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
||||||
golang.org/x/crypto v0.16.0 h1:mMMrFzRSCF0GvB7Ne27XVtVAaXLrPmgPC7/v0tkwHaY=
|
|
||||||
golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
|
|
||||||
golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k=
|
golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k=
|
||||||
golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
|
golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
|
||||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
||||||
|
|||||||
@@ -95,6 +95,27 @@ func (d *DarkstormTech) HandleReqest(req *stupid.Request) bool {
|
|||||||
return d.handleFiles(req)
|
return d.handleFiles(req)
|
||||||
case "portfolio":
|
case "portfolio":
|
||||||
return d.handlePortfolio(req)
|
return d.handlePortfolio(req)
|
||||||
|
case "default":
|
||||||
|
b, err := d.getBlog(req)
|
||||||
|
if err == mongo.ErrNoDocuments {
|
||||||
|
req.Resp.Write(notFoundPage().json())
|
||||||
|
req.Resp.WriteHeader(http.StatusNotFound)
|
||||||
|
return true
|
||||||
|
} else if err != nil {
|
||||||
|
log.Println("Error while getting blog:", err)
|
||||||
|
req.Resp.WriteHeader(http.StatusInternalServerError)
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
out := pageOut{
|
||||||
|
Content: d.bb.Convert(b.Content),
|
||||||
|
}
|
||||||
|
(&out).addDefaults()
|
||||||
|
_, err = req.Resp.Write(out.json())
|
||||||
|
if err != nil {
|
||||||
|
log.Println("Error while writing response:", err)
|
||||||
|
req.Resp.WriteHeader(http.StatusInternalServerError)
|
||||||
|
}
|
||||||
|
return true
|
||||||
}
|
}
|
||||||
res := d.DB.Collection("pages").FindOne(context.TODO(), bson.M{"_id": strings.Join(req.Path[1:], "/")}, options.FindOne().SetProjection(bson.M{"_id": 0}))
|
res := d.DB.Collection("pages").FindOne(context.TODO(), bson.M{"_id": strings.Join(req.Path[1:], "/")}, options.FindOne().SetProjection(bson.M{"_id": 0}))
|
||||||
if res.Err() == mongo.ErrNoDocuments {
|
if res.Err() == mongo.ErrNoDocuments {
|
||||||
@@ -129,14 +150,22 @@ type blog struct {
|
|||||||
Content string `bson:"content" json:"content"`
|
Content string `bson:"content" json:"content"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type blogOut struct {
|
func (d *DarkstormTech) getBlog(req *stupid.Request) (*blog, error) {
|
||||||
Content string `json:"content"`
|
var res *mongo.SingleResult
|
||||||
Title string `json:"title"`
|
if len(req.Path) == 2 {
|
||||||
}
|
res = d.DB.Collection("blog").FindOne(context.TODO(), bson.M{}, options.FindOne().SetSort(bson.M{"_id": -1}))
|
||||||
|
} else {
|
||||||
func (b blogOut) json() []byte {
|
res = d.DB.Collection("blog").FindOne(context.TODO(), bson.M{"_id": req.Path[2]})
|
||||||
out, _ := json.Marshal(b)
|
}
|
||||||
return out
|
if res.Err() != nil {
|
||||||
|
return nil, res.Err()
|
||||||
|
}
|
||||||
|
var b blog
|
||||||
|
err := res.Decode(&b)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &b, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *DarkstormTech) handleBlog(req *stupid.Request) bool {
|
func (d *DarkstormTech) handleBlog(req *stupid.Request) bool {
|
||||||
@@ -146,30 +175,22 @@ func (d *DarkstormTech) handleBlog(req *stupid.Request) bool {
|
|||||||
req.Resp.WriteHeader(http.StatusBadRequest)
|
req.Resp.WriteHeader(http.StatusBadRequest)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
var res *mongo.SingleResult
|
b, err := d.getBlog(req)
|
||||||
if len(req.Path) == 2 {
|
if err == mongo.ErrNoDocuments {
|
||||||
res = d.DB.Collection("blogs").FindOne(context.TODO(), bson.M{}, options.FindOne().SetSort(bson.M{"_id": -1}))
|
|
||||||
} else {
|
|
||||||
res = d.DB.Collection("blogs").FindOne(context.TODO(), bson.M{"_id": req.Path[2]})
|
|
||||||
}
|
|
||||||
if res.Err() == mongo.ErrNoDocuments {
|
|
||||||
req.Resp.Write(notFoundPage().json())
|
req.Resp.Write(notFoundPage().json())
|
||||||
req.Resp.WriteHeader(http.StatusNotFound)
|
req.Resp.WriteHeader(http.StatusNotFound)
|
||||||
return true
|
return true
|
||||||
} else if res.Err() != nil {
|
} else if err != nil {
|
||||||
log.Println("Error while getting blog:", res.Err())
|
log.Println("Error while getting blog:", err)
|
||||||
req.Resp.WriteHeader(http.StatusInternalServerError)
|
req.Resp.WriteHeader(http.StatusInternalServerError)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
var b blogOut
|
out := pageOut{
|
||||||
err := res.Decode(&b)
|
Content: d.bb.Convert(b.Content),
|
||||||
if err != nil {
|
Title: b.Title,
|
||||||
log.Println("Error while decoding blog:", err)
|
|
||||||
req.Resp.WriteHeader(http.StatusInternalServerError)
|
|
||||||
return true
|
|
||||||
}
|
}
|
||||||
b.Content = d.bb.Convert(b.Content)
|
(&out).addDefaults()
|
||||||
_, err = req.Resp.Write(b.json())
|
_, err = req.Resp.Write(out.json())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println("Error while writing response:", err)
|
log.Println("Error while writing response:", err)
|
||||||
req.Resp.WriteHeader(http.StatusInternalServerError)
|
req.Resp.WriteHeader(http.StatusInternalServerError)
|
||||||
@@ -206,7 +227,7 @@ func (d *DarkstormTech) addBlog(req *stupid.Request) bool {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
b.ID = strconv.Itoa(int(time.Now().Unix()))
|
b.ID = strconv.Itoa(int(time.Now().Unix()))
|
||||||
_, err = d.DB.Collection("blogs").InsertOne(context.TODO(), b)
|
_, err = d.DB.Collection("blog").InsertOne(context.TODO(), b)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println("Error while inserting blog:", err)
|
log.Println("Error while inserting blog:", err)
|
||||||
req.Resp.WriteHeader(http.StatusInternalServerError)
|
req.Resp.WriteHeader(http.StatusInternalServerError)
|
||||||
|
|||||||
Reference in New Issue
Block a user