diff --git a/backend/build.gradle.kts b/backend/build.gradle.kts index 5526acd..d96ffe2 100644 --- a/backend/build.gradle.kts +++ b/backend/build.gradle.kts @@ -16,6 +16,7 @@ dependencies{ implementation(project(":contact")) implementation(project(":core")) implementation(project(":documents")) + implementation(project(":files")) implementation(project(":items")) implementation(project(":legacy")) implementation(project(":markdown")) diff --git a/backend/src/main/java/de/srsoftware/umbrella/backend/Application.java b/backend/src/main/java/de/srsoftware/umbrella/backend/Application.java index 6ccbc45..96146cb 100644 --- a/backend/src/main/java/de/srsoftware/umbrella/backend/Application.java +++ b/backend/src/main/java/de/srsoftware/umbrella/backend/Application.java @@ -13,6 +13,7 @@ import de.srsoftware.umbrella.company.CompanyModule; import de.srsoftware.umbrella.core.Util; import de.srsoftware.umbrella.core.exceptions.UmbrellaException; import de.srsoftware.umbrella.documents.DocumentApi; +import de.srsoftware.umbrella.files.FileModule; import de.srsoftware.umbrella.items.ItemApi; import de.srsoftware.umbrella.legacy.*; import de.srsoftware.umbrella.markdown.MarkdownApi; @@ -79,6 +80,7 @@ public class Application { new TimeModule(config).bindPath("/api/time").on(server); new WebHandler().bindPath("/").on(server); new WikiModule(config).bindPath("/api/wiki").on(server); + new FileModule(config).bindPath("/api/files").on(server); server.setExecutor(Executors.newFixedThreadPool(threads)); server.start(); diff --git a/core/src/main/java/de/srsoftware/umbrella/core/ModuleRegistry.java b/core/src/main/java/de/srsoftware/umbrella/core/ModuleRegistry.java index 6a6ca7a..020af4f 100644 --- a/core/src/main/java/de/srsoftware/umbrella/core/ModuleRegistry.java +++ b/core/src/main/java/de/srsoftware/umbrella/core/ModuleRegistry.java @@ -6,19 +6,20 @@ import de.srsoftware.umbrella.core.api.*; public class ModuleRegistry { private BookmarkService bookmarkService; - private CompanyService companyService; + private CompanyService companyService; private DocumentService documentService; - private ItemService itemService; + private FileService fileService; + private ItemService itemService; private MarkdownService markdownService; - private NoteService noteService; - private PostBox postBox; - private ProjectService projectService; - private TagService tagService; - private TaskService taskService; - private TimeService timeService; - private Translator translator; - private UserService userService; - private WikiService wikiService; + private NoteService noteService; + private PostBox postBox; + private ProjectService projectService; + private TagService tagService; + private TaskService taskService; + private TimeService timeService; + private Translator translator; + private UserService userService; + private WikiService wikiService; private static final ModuleRegistry singleton = new ModuleRegistry(); @@ -29,6 +30,7 @@ public class ModuleRegistry { case BookmarkService bs: singleton.bookmarkService = bs; break; case CompanyService cs: singleton.companyService = cs; break; case DocumentService ds: singleton.documentService = ds; break; + case FileService fs singleton.fileService = fs; breaK; case ItemService is: singleton.itemService = is; break; case MarkdownService ms: singleton.markdownService = ms; break; case NoteService ns: singleton.noteService = ns; break; @@ -61,6 +63,10 @@ public class ModuleRegistry { return singleton.itemService; } + public static FileService fileService(){ + return singleton.fileService; + } + public static MarkdownService markdownService(){ return singleton.markdownService; } diff --git a/core/src/main/java/de/srsoftware/umbrella/core/api/FileService.java b/core/src/main/java/de/srsoftware/umbrella/core/api/FileService.java new file mode 100644 index 0000000..702b24d --- /dev/null +++ b/core/src/main/java/de/srsoftware/umbrella/core/api/FileService.java @@ -0,0 +1,4 @@ +package de.srsoftware.umbrella.core.api; + +public interface FileService { +} diff --git a/files/src/main/java/de/srsoftware/umbrella/files/Constants.java b/files/src/main/java/de/srsoftware/umbrella/files/Constants.java new file mode 100644 index 0000000..0ef7a74 --- /dev/null +++ b/files/src/main/java/de/srsoftware/umbrella/files/Constants.java @@ -0,0 +1,5 @@ +package de.srsoftware.umbrella.files; + +public class Constants { + public static final String CONFIG_DATABASE = "umbrella.modules.files.database"; +} diff --git a/files/src/main/java/de/srsoftware/umbrella/files/FileDb.java b/files/src/main/java/de/srsoftware/umbrella/files/FileDb.java new file mode 100644 index 0000000..27eb65e --- /dev/null +++ b/files/src/main/java/de/srsoftware/umbrella/files/FileDb.java @@ -0,0 +1,4 @@ +package de.srsoftware.umbrella.files; + +public interface FileDb { +} diff --git a/files/src/main/java/de/srsoftware/umbrella/files/FileModule.java b/files/src/main/java/de/srsoftware/umbrella/files/FileModule.java new file mode 100644 index 0000000..b18019c --- /dev/null +++ b/files/src/main/java/de/srsoftware/umbrella/files/FileModule.java @@ -0,0 +1,24 @@ +package de.srsoftware.umbrella.files; + +import de.srsoftware.configuration.Configuration; +import de.srsoftware.umbrella.core.BaseHandler; +import de.srsoftware.umbrella.core.ModuleRegistry; +import de.srsoftware.umbrella.core.api.FileService; +import de.srsoftware.umbrella.core.exceptions.UmbrellaException; + +import static de.srsoftware.umbrella.core.ConnectionProvider.connect; +import static de.srsoftware.umbrella.core.exceptions.UmbrellaException.missingFieldException; +import static de.srsoftware.umbrella.files.Constants.CONFIG_DATABASE; + +public class FileModule extends BaseHandler implements FileService { + + FileDb fileDb; + + public FileModule(Configuration config) throws UmbrellaException { + super(); + var dbFile = config.get(CONFIG_DATABASE).orElseThrow(() -> missingFieldException(CONFIG_DATABASE)); + fileDb = new SqliteDb(connect(dbFile)); + ModuleRegistry.add(this); + } + +} diff --git a/files/src/main/java/de/srsoftware/umbrella/files/SqliteDb.java b/files/src/main/java/de/srsoftware/umbrella/files/SqliteDb.java new file mode 100644 index 0000000..2bf750f --- /dev/null +++ b/files/src/main/java/de/srsoftware/umbrella/files/SqliteDb.java @@ -0,0 +1,11 @@ +package de.srsoftware.umbrella.files; + +import java.sql.Connection; + +public class SqliteDb implements FileDb { + private final Connection db; + + public SqliteDb(Connection conn) { + this.db = conn; + } +} diff --git a/settings.gradle.kts b/settings.gradle.kts index ee979d6..d0f92b0 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -6,6 +6,7 @@ include("company") include("contact") include("core") include("documents") +include("files") include("legacy") include("items") include("messages") diff --git a/task/src/main/java/de/srsoftware/umbrella/task/TaskModule.java b/task/src/main/java/de/srsoftware/umbrella/task/TaskModule.java index c53f0c8..bf4bf4f 100644 --- a/task/src/main/java/de/srsoftware/umbrella/task/TaskModule.java +++ b/task/src/main/java/de/srsoftware/umbrella/task/TaskModule.java @@ -13,7 +13,6 @@ import static de.srsoftware.umbrella.core.exceptions.UmbrellaException.*; import static de.srsoftware.umbrella.core.model.Permission.*; import static de.srsoftware.umbrella.project.Constants.PERMISSIONS; import static de.srsoftware.umbrella.task.Constants.*; -import static java.lang.System.Logger.Level.DEBUG; import static java.lang.System.Logger.Level.WARNING; import com.sun.net.httpserver.HttpExchange;