diff --git a/README.md b/README.md
index 997b393..163910b 100644
--- a/README.md
+++ b/README.md
@@ -10,6 +10,14 @@ Donetick is an open-source, user-friendly app designed to help you organize task

+
+
+
+
+
+[](https://discord.gg/6hSH6F33q7)
+[](https://www.reddit.com/r/donetick)
+
---
## ✨ Features
@@ -140,9 +148,17 @@ This project is licensed under the **AGPLv3**. See the [LICENSE](LICENSE) file f
---
+## 💬 Join the Discussion
+For ideas or feature requests, please use GitHub Discussions. We also have a Discord server and a subreddit for those who prefer those platforms!
+
+
+
+
+
+---
+
## 💡 Support Donetick
If you find it helpful, consider supporting us by starring the repository, contributing code, or sharing feedback!
----
-
+---
\ No newline at end of file
diff --git a/internal/chore/api.go b/internal/chore/api.go
index 7c1aa27..70b269c 100644
--- a/internal/chore/api.go
+++ b/internal/chore/api.go
@@ -46,7 +46,7 @@ func (h *API) GetAllChores(c *gin.Context) {
func APIs(cfg *config.Config, api *API, r *gin.Engine, auth *jwt.GinJWTMiddleware, limiter *limiter.Limiter) {
- thingsAPI := r.Group("api/v1/chore")
+ thingsAPI := r.Group("eapi/v1/chore")
thingsAPI.Use(utils.TimeoutMiddleware(cfg.Server.WriteTimeout), utils.RateLimitMiddleware(limiter))
{
diff --git a/internal/chore/handler.go b/internal/chore/handler.go
index db42437..4b869b9 100644
--- a/internal/chore/handler.go
+++ b/internal/chore/handler.go
@@ -1392,7 +1392,7 @@ func checkNextAssignee(chore *chModel.Chore, choresHistory []*chModel.ChoreHisto
func Routes(router *gin.Engine, h *Handler, auth *jwt.GinJWTMiddleware) {
- choresRoutes := router.Group("chores")
+ choresRoutes := router.Group("api/v1/chores")
choresRoutes.Use(auth.MiddlewareFunc())
{
choresRoutes.GET("/", h.getChores)
diff --git a/internal/circle/handler.go b/internal/circle/handler.go
index c597ac1..03fb9cb 100644
--- a/internal/circle/handler.go
+++ b/internal/circle/handler.go
@@ -427,7 +427,7 @@ func (h *Handler) AcceptJoinRequest(c *gin.Context) {
func Routes(router *gin.Engine, h *Handler, auth *jwt.GinJWTMiddleware) {
log.Println("Registering routes")
- circleRoutes := router.Group("circles")
+ circleRoutes := router.Group("api/v1/circles")
circleRoutes.Use(auth.MiddlewareFunc())
{
circleRoutes.GET("/members", h.GetCircleMembers)
diff --git a/internal/label/handler.go b/internal/label/handler.go
index 655352a..06011c1 100644
--- a/internal/label/handler.go
+++ b/internal/label/handler.go
@@ -164,7 +164,7 @@ func (h *Handler) deleteLabel(c *gin.Context) {
func Routes(r *gin.Engine, h *Handler, auth *jwt.GinJWTMiddleware) {
- labelRoutes := r.Group("labels")
+ labelRoutes := r.Group("api/v1/labels")
labelRoutes.Use(auth.MiddlewareFunc())
{
labelRoutes.GET("", h.getLabels)
diff --git a/internal/thing/handler.go b/internal/thing/handler.go
index 7121c82..9a0b9e8 100644
--- a/internal/thing/handler.go
+++ b/internal/thing/handler.go
@@ -279,7 +279,7 @@ func (h *Handler) DeleteThing(c *gin.Context) {
}
func Routes(r *gin.Engine, h *Handler, auth *jwt.GinJWTMiddleware) {
- thingRoutes := r.Group("things")
+ thingRoutes := r.Group("api/v1/things")
thingRoutes.Use(auth.MiddlewareFunc())
{
thingRoutes.POST("", h.CreateThing)
diff --git a/internal/thing/webhook.go b/internal/thing/webhook.go
index 0d110ab..03498cb 100644
--- a/internal/thing/webhook.go
+++ b/internal/thing/webhook.go
@@ -164,7 +164,7 @@ func validateUserAndThing(c *gin.Context, h *Webhook) (*tModel.Thing, bool) {
func Webhooks(cfg *config.Config, w *Webhook, r *gin.Engine, auth *jwt.GinJWTMiddleware) {
- thingsAPI := r.Group("webhooks/things")
+ thingsAPI := r.Group("eapi/v1/things")
thingsAPI.Use(utils.TimeoutMiddleware(cfg.Server.WriteTimeout))
{
diff --git a/internal/user/handler.go b/internal/user/handler.go
index 9d861f9..0650bab 100644
--- a/internal/user/handler.go
+++ b/internal/user/handler.go
@@ -586,7 +586,7 @@ func (h *Handler) updateUserPasswordLoggedInOnly(c *gin.Context) {
func Routes(router *gin.Engine, h *Handler, auth *jwt.GinJWTMiddleware, limiter *limiter.Limiter) {
- userRoutes := router.Group("users")
+ userRoutes := router.Group("api/v1/users")
userRoutes.Use(auth.MiddlewareFunc(), utils.RateLimitMiddleware(limiter))
{
userRoutes.GET("/", h.GetAllUsers())
@@ -600,7 +600,7 @@ func Routes(router *gin.Engine, h *Handler, auth *jwt.GinJWTMiddleware, limiter
}
- authRoutes := router.Group("auth")
+ authRoutes := router.Group("api/v1/auth")
authRoutes.Use(utils.RateLimitMiddleware(limiter))
{
authRoutes.POST("/:provider/callback", h.thirdPartyAuthCallback)