From a5592f37ad78a2a842f8f4cf906265a775a5ee7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lu=C3=ADs=20Portela=20Afonso?= Date: Mon, 18 Apr 2022 22:51:18 -0700 Subject: [PATCH] feat: client context and string range * created new context for client * added extension for string and range --- Sources/YData/Core/Client.swift | 9 +++++++++ Sources/YData/Core/Service.swift | 1 - Sources/YData/Database/DatabaseClient.swift | 7 +++++++ Sources/YData/Database/DatabaseClientContext.swift | 6 ++++++ .../Extensions/Application+DatabaseClientContext.swift | 7 +++++++ Sources/YData/Extensions/Range.swift | 3 +++ .../Request/Request+DatabaseClientContext.swift | 5 +++++ Sources/YData/Extensions/String+NSRange.swift | 5 +++++ 8 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 Sources/YData/Core/Client.swift create mode 100644 Sources/YData/Database/DatabaseClient.swift create mode 100644 Sources/YData/Database/DatabaseClientContext.swift create mode 100644 Sources/YData/Extensions/Application+DatabaseClientContext.swift create mode 100644 Sources/YData/Extensions/Range.swift create mode 100644 Sources/YData/Extensions/Request/Request+DatabaseClientContext.swift create mode 100644 Sources/YData/Extensions/String+NSRange.swift diff --git a/Sources/YData/Core/Client.swift b/Sources/YData/Core/Client.swift new file mode 100644 index 0000000..1e86ff5 --- /dev/null +++ b/Sources/YData/Core/Client.swift @@ -0,0 +1,9 @@ +import Foundation + +public protocol ClientContext: EventLoopContext, LoggerContext {} + +public protocol Client { + associatedtype Context: ClientContext + + var context: Context { get } +} diff --git a/Sources/YData/Core/Service.swift b/Sources/YData/Core/Service.swift index 3400dc6..29f324b 100644 --- a/Sources/YData/Core/Service.swift +++ b/Sources/YData/Core/Service.swift @@ -1,5 +1,4 @@ import Foundation -import Vapor public protocol ServiceContext: EventLoopContext, LoggerContext {} diff --git a/Sources/YData/Database/DatabaseClient.swift b/Sources/YData/Database/DatabaseClient.swift new file mode 100644 index 0000000..5c3b66f --- /dev/null +++ b/Sources/YData/Database/DatabaseClient.swift @@ -0,0 +1,7 @@ +import Foundation + +public protocol DatabaseClient { + associatedtype Context: DatabaseClientContext + + var context: Context { get } +} diff --git a/Sources/YData/Database/DatabaseClientContext.swift b/Sources/YData/Database/DatabaseClientContext.swift new file mode 100644 index 0000000..71e1db1 --- /dev/null +++ b/Sources/YData/Database/DatabaseClientContext.swift @@ -0,0 +1,6 @@ +import Fluent +import Foundation + +public protocol DatabaseClientContext { + var database: Database { get } +} diff --git a/Sources/YData/Extensions/Application+DatabaseClientContext.swift b/Sources/YData/Extensions/Application+DatabaseClientContext.swift new file mode 100644 index 0000000..12097b6 --- /dev/null +++ b/Sources/YData/Extensions/Application+DatabaseClientContext.swift @@ -0,0 +1,7 @@ +import Fluent +import Foundation +import Vapor + +extension Application: DatabaseClientContext { + public var database: Database { db } +} diff --git a/Sources/YData/Extensions/Range.swift b/Sources/YData/Extensions/Range.swift new file mode 100644 index 0000000..9a30829 --- /dev/null +++ b/Sources/YData/Extensions/Range.swift @@ -0,0 +1,3 @@ +import Foundation + + diff --git a/Sources/YData/Extensions/Request/Request+DatabaseClientContext.swift b/Sources/YData/Extensions/Request/Request+DatabaseClientContext.swift new file mode 100644 index 0000000..9a828ca --- /dev/null +++ b/Sources/YData/Extensions/Request/Request+DatabaseClientContext.swift @@ -0,0 +1,5 @@ +import Fluent +import Foundation +import Vapor + +extension Request: DatabaseClientContext {} diff --git a/Sources/YData/Extensions/String+NSRange.swift b/Sources/YData/Extensions/String+NSRange.swift new file mode 100644 index 0000000..f04f71c --- /dev/null +++ b/Sources/YData/Extensions/String+NSRange.swift @@ -0,0 +1,5 @@ +import Foundation + +public extension String { + var nsRange: NSRange { NSRange(startIndex..