-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #11 from RECYTHNG/develop
Develop
- Loading branch information
Showing
10 changed files
with
832 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
package dto | ||
|
||
type DashboardResponse struct { | ||
User TotalUser `json:"user"` | ||
Report TotalReport `json:"report"` | ||
Challenge TotalChallenge `json:"challenge"` | ||
Content TotalContent `json:"content"` | ||
UserAchievement UserAchievement `json:"user_achievement"` | ||
DataUserByAddress []DataUserByAddress `json:"data_user_by_address"` | ||
DataUserByGender []DataUserByGender `json:"data_user_by_gender"` | ||
TotalLittering int `json:"total_report_littering"` | ||
TotalRubbish int `json:"total_report_rubbish"` | ||
DataReportByWasteTypeRubbish []DataReportByWasteType `json:"data_report_by_waste_rubbish"` | ||
DataReportByWasteTypeLittering []DataReportByWasteType `json:"data_report_by_waste_littering"` | ||
DataReportStatistic DataReportStatistic `json:"data_report_statistic"` | ||
} | ||
|
||
type TotalUser struct { | ||
TotalUser int `json:"total_user"` | ||
AdditionUserSinceYesterday int `json:"addition_user_since_yesterday"` | ||
} | ||
|
||
type UserAchievement struct { | ||
TotalUser int `json:"total_user"` | ||
Classic int `json:"classic"` | ||
Silver int `json:"silver"` | ||
Gold int `json:"gold"` | ||
Platinum int `json:"platinum"` | ||
} | ||
|
||
type TotalReport struct { | ||
TotalReport int `json:"total_report"` | ||
AdditionReportSinceYesterday int `json:"addition_report_since_yesterday"` | ||
} | ||
|
||
type TotalChallenge struct { | ||
TotalChallenge int `json:"total_challenge"` | ||
AdditionChallengeSinceLastWeek int `json:"addition_challenge_since_last_week"` | ||
} | ||
|
||
type TotalContent struct { | ||
TotalContent int `json:"total_content"` | ||
AdditionContentToday int `json:"addition_content_today"` | ||
} | ||
|
||
type DailyReportStats struct { | ||
Day int64 `json:"day"` | ||
TotalReports int64 `json:"total_reports"` | ||
} | ||
|
||
type MonthlyReportStats struct { | ||
Month string `json:"month"` | ||
DailyStats []DailyReportStats `json:"daily_statistic"` | ||
TotalReports int64 `json:"total_reports"` | ||
} | ||
|
||
type DataReportStatistic struct { | ||
ReportLittering []MonthlyReportStats `json:"report_littering"` | ||
ReportRubbish []MonthlyReportStats `json:"report_rubbish"` | ||
} | ||
|
||
type DataUserByAddress struct { | ||
City string `json:"city"` | ||
TotalUser int `json:"total_user"` | ||
} | ||
|
||
type DataUserByGender struct { | ||
Gender string `json:"gender"` | ||
TotalUser int64 `json:"total_user"` | ||
Percentage float64 `json:"percentage"` | ||
} | ||
|
||
type DataReportByWasteType struct { | ||
ReportType string `json:"report_type"` | ||
WasteType string `json:"waste_type"` | ||
TotalReports int64 `json:"total_reports"` | ||
Percentage float64 `json:"percentage"` | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
package handler | ||
|
||
import "github.com/labstack/echo/v4" | ||
|
||
type DashboardHandler interface { | ||
GetDashboardHandler(c echo.Context) error | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
package handler | ||
|
||
import ( | ||
"net/http" | ||
|
||
"github.com/labstack/echo/v4" | ||
"github.com/sawalreverr/recything/internal/dashboard/usecase" | ||
"github.com/sawalreverr/recything/internal/helper" | ||
) | ||
|
||
type DashboardHandlerImpl struct { | ||
DashboardUsecase usecase.DashboardUsecase | ||
} | ||
|
||
func NewDashboardHandler(dashboardUsecase usecase.DashboardUsecase) DashboardHandler { | ||
return &DashboardHandlerImpl{DashboardUsecase: dashboardUsecase} | ||
} | ||
|
||
func (h *DashboardHandlerImpl) GetDashboardHandler(c echo.Context) error { | ||
dashboard, err := h.DashboardUsecase.GetDashboardUsecase() | ||
if err != nil { | ||
return helper.ErrorHandler(c, http.StatusInternalServerError, "internal server error") | ||
} | ||
responseData := helper.ResponseData(http.StatusOK, "success", dashboard) | ||
return c.JSON(http.StatusOK, responseData) | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
package repository | ||
|
||
import "github.com/sawalreverr/recything/internal/dashboard/dto" | ||
|
||
type DashboardRepository interface { | ||
GetTotalUser() (int, int, error) | ||
GetTotalReport() (int, int, error) | ||
GetTotalChallenge() (int, int, error) | ||
GetTotalVideo() (int, int, error) | ||
GetTotalArticle() (int, int, error) | ||
GetUserClassic() (int, error) | ||
GetUserSilver() (int, error) | ||
GetUserGold() (int, error) | ||
GetUserPlatinum() (int, error) | ||
GetReportLittering() (int, error) | ||
GetReportRubbish() (int, error) | ||
GetMonthlyReport(year int, reportType string) ([]dto.MonthlyReportStats, error) | ||
GetDataUserByAddress() ([]dto.DataUserByAddress, error) | ||
GetUserByGender() ([]dto.DataUserByGender, error) | ||
GetDataReportByWasteType(reportType string, wasteTypes []string) ([]dto.DataReportByWasteType, error) | ||
} |
Oops, something went wrong.