- Update API routes for consistency and versioning. any communication with donetick will go through /api/v1. for external will user prefix /eapi/v1

- Update Readme and add Discord and Reddit
This commit is contained in:
Mo Tarbin 2025-01-02 23:21:05 -05:00
parent 776e510c0c
commit b7b434ae8c
8 changed files with 26 additions and 10 deletions

View file

@ -10,6 +10,14 @@ Donetick is an open-source, user-friendly app designed to help you organize task
![Screenshot](assets/screenshot.png)
![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/donetick/donetick/go-release.yml)
![GitHub release (latest by date)](https://img.shields.io/github/v/release/donetick/donetick)
![Docker Pulls](https://img.shields.io/docker/pulls/donetick/donetick)
[![Discord](https://img.shields.io/discord/1272383484509421639)](https://discord.gg/6hSH6F33q7)
[![Reddit](https://img.shields.io/reddit/subreddit-subscribers/donetick)](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!
<img alt="Discord" src="https://img.shields.io/discord/1272383484509421639">
<img alt="Reddit" src="https://img.shields.io/reddit/subreddit-subscribers/donetick">
<img alt="GitHub Discussions" src="https://img.shields.io/github/discussions/donetick/donetick">
---
## 💡 Support Donetick
If you find it helpful, consider supporting us by starring the repository, contributing code, or sharing feedback!
---

View file

@ -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))
{

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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))
{

View file

@ -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)