From ebccbfe8fd76438005ef9a8dbabf4d32182694f9 Mon Sep 17 00:00:00 2001 From: Jan Cizmar Date: Tue, 29 Mar 2022 15:01:11 +0200 Subject: [PATCH] feat: Add project dashboard page #915 - unfinished controller --- .../v2/controllers/V2ProjectStatsController.kt | 4 ++-- .../api/v2/hateoas/project/ProjectStatsModel.kt | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 backend/app/src/main/kotlin/io/tolgee/api/v2/hateoas/project/ProjectStatsModel.kt diff --git a/backend/app/src/main/kotlin/io/tolgee/api/v2/controllers/V2ProjectStatsController.kt b/backend/app/src/main/kotlin/io/tolgee/api/v2/controllers/V2ProjectStatsController.kt index 3ae43899c2..8ab5827d86 100644 --- a/backend/app/src/main/kotlin/io/tolgee/api/v2/controllers/V2ProjectStatsController.kt +++ b/backend/app/src/main/kotlin/io/tolgee/api/v2/controllers/V2ProjectStatsController.kt @@ -18,14 +18,14 @@ import org.springframework.web.bind.annotation.RestController @Suppress("MVCPathVariableInspection") @RestController @CrossOrigin(origins = ["*"]) -@RequestMapping(value = ["/v2/projects"]) +@RequestMapping(value = ["/v2/projects/{projectId}/stats", "/v2/projects/stats"]) @Tag(name = "Projects") class V2ProjectStatsController( private val projectStatsService: ProjectStatsService ) { @Operation(summary = "Returns project stats") - @GetMapping("/{projectId}/stats", produces = [MediaTypes.HAL_JSON_VALUE]) + @GetMapping("", produces = [MediaTypes.HAL_JSON_VALUE]) @AccessWithAnyProjectPermission @AccessWithApiKey fun getProjectStats(projectId: Long) { diff --git a/backend/app/src/main/kotlin/io/tolgee/api/v2/hateoas/project/ProjectStatsModel.kt b/backend/app/src/main/kotlin/io/tolgee/api/v2/hateoas/project/ProjectStatsModel.kt new file mode 100644 index 0000000000..63ca316a2f --- /dev/null +++ b/backend/app/src/main/kotlin/io/tolgee/api/v2/hateoas/project/ProjectStatsModel.kt @@ -0,0 +1,17 @@ +package io.tolgee.api.v2.hateoas.project + +import io.tolgee.api.v2.hateoas.organization.OrganizationModel +import io.tolgee.api.v2.hateoas.user_account.UserAccountModel + +open class ProjectStatsModel( + val projectId: Int, + val languageCount: Int, + val keyCount: Int, + val baseWordsCount: Int, + val translatedPercent: Int, + val reviewedPercent: Int, + val membersCount: Int, + val userOwner: UserAccountModel?, + val organizationOwner: OrganizationModel?, + val tagCount: Int, +)