diff --git a/.github/workflows/docker-image-release.yml b/.github/workflows/docker-image-release.yml index d2e34fe..d3ad35c 100644 --- a/.github/workflows/docker-image-release.yml +++ b/.github/workflows/docker-image-release.yml @@ -1,52 +1,52 @@ -name: Build and Push Docker Image +# name: Build and Push Docker Image -on: - push: - branches: - - main +# on: +# push: +# branches: +# - main -jobs: - build: - name: Build and Push Docker Image - runs-on: ubuntu-latest +# jobs: +# build: +# name: Build and Push Docker Image +# runs-on: ubuntu-latest - steps: - # Checkout the code from the repository - - name: Checkout repository - uses: actions/checkout@v3 +# steps: +# # Checkout the code from the repository +# - name: Checkout repository +# uses: actions/checkout@v3 - # # Download the latest release binary from GitHub releases - # - name: Download latest release binary - # run: | - # latest_release=$(curl --silent "https://api.github.com/repos/donetick/donetick/releases/latest" | jq -r '.tag_name') - # curl -L "https://github.com/donetick/donetick/releases/download/${latest_release}/donetick_Linux_x86_64.tar.gz" -o donetick_Linux_x86_64.tar.gz - # tar -xzf donetick_Linux_x86_64.tar.gz - # chmod +x ./donetick +# # # Download the latest release binary from GitHub releases +# # - name: Download latest release binary +# # run: | +# # latest_release=$(curl --silent "https://api.github.com/repos/donetick/donetick/releases/latest" | jq -r '.tag_name') +# # curl -L "https://github.com/donetick/donetick/releases/download/${latest_release}/donetick_Linux_x86_64.tar.gz" -o donetick_Linux_x86_64.tar.gz +# # tar -xzf donetick_Linux_x86_64.tar.gz +# # chmod +x ./donetick - # Log in to Docker Hub - - name: Log in to Docker Hub - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} +# # Log in to Docker Hub +# - name: Log in to Docker Hub +# uses: docker/login-action@v2 +# with: +# username: ${{ secrets.DOCKER_USERNAME }} +# password: ${{ secrets.DOCKER_PASSWORD }} - # # Log in to GitHub Container Registry - # - name: Login to GitHub Container Registry - # uses: docker/login-action@v3.3.0 - # with: - # registry: ghcr.io - # username: ${{ github.repository_owner }} - # password: ${{ secrets.GITHUB_TOKEN }} +# # # Log in to GitHub Container Registry +# # - name: Login to GitHub Container Registry +# # uses: docker/login-action@v3.3.0 +# # with: +# # registry: ghcr.io +# # username: ${{ github.repository_owner }} +# # password: ${{ secrets.GITHUB_TOKEN }} - # Build and tag Docker image - - name: Build Docker image - run: | - docker build -t ${{ secrets.DOCKER_USERNAME }}/donetick:latest . +# # Build and tag Docker image +# - name: Build Docker image +# run: | +# docker build -t ${{ secrets.DOCKER_USERNAME }}/donetick:latest . - # Push Docker image - - name: Push Docker image - run: | - docker push ${{ secrets.DOCKER_USERNAME }}/donetick:latest +# # Push Docker image +# - name: Push Docker image +# run: | +# docker push ${{ secrets.DOCKER_USERNAME }}/donetick:latest diff --git a/.github/workflows/go-release.yml b/.github/workflows/go-release.yml index 8951701..a99c58d 100644 --- a/.github/workflows/go-release.yml +++ b/.github/workflows/go-release.yml @@ -10,6 +10,7 @@ on: jobs: build: runs-on: ubuntu-latest + name: Build and Push Docker Image steps: - name: Checkout Code uses: actions/checkout@v4 @@ -57,4 +58,20 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Your GoReleaser Pro key, if you are using the 'goreleaser-pro' distribution # GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }} - \ No newline at end of file + + # Log in to Docker Hub + - name: Log in to Docker Hub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + # Build and tag Docker image + - name: Build Docker image + run: | + docker build -t ${{ secrets.DOCKER_USERNAME }}/donetick:latest . + + # Push Docker image + - name: Push Docker image + run: | + docker push ${{ secrets.DOCKER_USERNAME }}/donetick:latest \ No newline at end of file diff --git a/internal/chore/handler.go b/internal/chore/handler.go index ad1dd63..ec2ee9c 100644 --- a/internal/chore/handler.go +++ b/internal/chore/handler.go @@ -98,6 +98,26 @@ func (h *Handler) getChores(c *gin.Context) { }) } +func (h *Handler) getArchivedChores(c *gin.Context) { + u, ok := auth.CurrentUser(c) + if !ok { + c.JSON(500, gin.H{ + "error": "Error getting current circle", + }) + return + } + chores, err := h.choreRepo.GetArchivedChores(c, u.CircleID, u.ID) + if err != nil { + c.JSON(500, gin.H{ + "error": "Error getting chores", + }) + return + } + + c.JSON(200, gin.H{ + "res": chores, + }) +} func (h *Handler) getChore(c *gin.Context) { currentUser, ok := auth.CurrentUser(c) @@ -1276,6 +1296,7 @@ func Routes(router *gin.Engine, h *Handler, auth *jwt.GinJWTMiddleware) { choresRoutes.Use(auth.MiddlewareFunc()) { choresRoutes.GET("/", h.getChores) + choresRoutes.GET("/archived", h.getArchivedChores) choresRoutes.PUT("/", h.editChore) choresRoutes.PUT("/:id/priority", h.updatePriority) choresRoutes.POST("/", h.createChore) diff --git a/internal/chore/repo/repository.go b/internal/chore/repo/repository.go index bdd75ad..1a89f1b 100644 --- a/internal/chore/repo/repository.go +++ b/internal/chore/repo/repository.go @@ -52,7 +52,15 @@ func (r *ChoreRepository) GetChore(c context.Context, choreID int) (*chModel.Cho func (r *ChoreRepository) GetChores(c context.Context, circleID int, userID int) ([]*chModel.Chore, error) { var chores []*chModel.Chore // if err := r.db.WithContext(c).Preload("Assignees").Where("is_active = ?", true).Order("next_due_date asc").Find(&chores, "circle_id = ?", circleID).Error; err != nil { - if err := r.db.WithContext(c).Preload("Assignees").Preload("LabelsV2").Joins("left join chore_assignees on chores.id = chore_assignees.chore_id").Where("chores.circle_id = ? AND (chores.created_by = ? OR chore_assignees.user_id = ?)", circleID, userID, userID).Group("chores.id").Order("next_due_date asc").Find(&chores, "circle_id = ?", circleID).Error; err != nil { + if err := r.db.WithContext(c).Preload("Assignees").Preload("LabelsV2").Joins("left join chore_assignees on chores.id = chore_assignees.chore_id").Where("chores.circle_id = ? AND (chores.created_by = ? OR chore_assignees.user_id = ?)", circleID, userID, userID).Group("chores.id").Order("next_due_date asc").Find(&chores, "circle_id = ? AND is_active = ?", circleID, true).Error; err != nil { + return nil, err + } + return chores, nil +} + +func (r *ChoreRepository) GetArchivedChores(c context.Context, circleID int, userID int) ([]*chModel.Chore, error) { + var chores []*chModel.Chore + if err := r.db.WithContext(c).Preload("Assignees").Preload("LabelsV2").Joins("left join chore_assignees on chores.id = chore_assignees.chore_id").Where("chores.circle_id = ? AND (chores.created_by = ? OR chore_assignees.user_id = ?)", circleID, userID, userID).Group("chores.id").Order("next_due_date asc").Find(&chores, "circle_id = ? AND is_active = ?", circleID, false).Error; err != nil { return nil, err } return chores, nil