diff --git a/connector/shared/src/commonMain/kotlin/io/anthonyberg/connector/shared/ProjectTransaction.kt b/connector/shared/src/commonMain/kotlin/io/anthonyberg/connector/shared/ProjectTransaction.kt index 0815012..ad85998 100644 --- a/connector/shared/src/commonMain/kotlin/io/anthonyberg/connector/shared/ProjectTransaction.kt +++ b/connector/shared/src/commonMain/kotlin/io/anthonyberg/connector/shared/ProjectTransaction.kt @@ -10,6 +10,13 @@ import io.anthonyberg.connector.shared.entity.Project class ProjectTransaction (driverFactory: DriverFactory) { private val database = ProjectDatabase(driverFactory) + /** + * Creates a project in the database. + */ + fun createProject(project: Project) { + database.createProject(project) + } + /** * Gets all Projects in the database. */ @@ -19,9 +26,17 @@ class ProjectTransaction (driverFactory: DriverFactory) { } /** - * Creates a project in the database. + * Gets the number of projects in the database */ - fun createProject(project: Project) { - database.createProject(project) + fun countProjects(): Long { + return database.countProjects() + } + + /** + * Checks if projects are on the database. + * @return `true` if projects exist + */ + fun projectExists(): Boolean { + return database.countProjects() > 0 } } diff --git a/connector/shared/src/commonMain/kotlin/io/anthonyberg/connector/shared/database/ProjectDatabase.kt b/connector/shared/src/commonMain/kotlin/io/anthonyberg/connector/shared/database/ProjectDatabase.kt index cd45ce6..3c93192 100644 --- a/connector/shared/src/commonMain/kotlin/io/anthonyberg/connector/shared/database/ProjectDatabase.kt +++ b/connector/shared/src/commonMain/kotlin/io/anthonyberg/connector/shared/database/ProjectDatabase.kt @@ -39,4 +39,11 @@ internal class ProjectDatabase (driverFactory: DriverFactory) { createdUTC = project.createdUTC, ) } + + /** + * Counts the amount of entries there are for projects + */ + internal fun countProjects(): Long { + return dbQuery.countProjects().executeAsOne() + } } diff --git a/connector/shared/src/commonMain/sqldelight/io/anthonyberg/connector/shared/database/Project.sq b/connector/shared/src/commonMain/sqldelight/io/anthonyberg/connector/shared/database/Project.sq index 9e75f76..1d06d53 100644 --- a/connector/shared/src/commonMain/sqldelight/io/anthonyberg/connector/shared/database/Project.sq +++ b/connector/shared/src/commonMain/sqldelight/io/anthonyberg/connector/shared/database/Project.sq @@ -12,3 +12,6 @@ VALUES (?, ?, ?); selectAllProjects: SELECT * FROM Project; + +countProjects: +SELECT COUNT(*) FROM Project;