Skip to content

Commit d381ba3

Browse files
committed
Add key field, filter by key in findOrCreate
1 parent e1c9fa8 commit d381ba3

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

Sources/App/Models/CustomCollection.swift

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ final class CustomCollection: @unchecked Sendable, Model, Content {
3535

3636
// data fields
3737

38+
@Field(key: "key")
39+
var key: String
40+
3841
@Field(key: "name")
3942
var name: String
4043

@@ -58,6 +61,7 @@ final class CustomCollection: @unchecked Sendable, Model, Content {
5861
self.id = id
5962
self.createdAt = createdAt
6063
self.updatedAt = updatedAt
64+
self.key = details.key
6165
self.name = details.name
6266
self.description = details.description
6367
self.badge = details.badge
@@ -68,6 +72,7 @@ final class CustomCollection: @unchecked Sendable, Model, Content {
6872

6973
extension CustomCollection {
7074
struct Details: Codable, Equatable {
75+
var key: String
7176
var name: String
7277
var description: String?
7378
var badge: String?
@@ -76,7 +81,7 @@ extension CustomCollection {
7681

7782
static func findOrCreate(on database: Database, _ details: Details) async throws -> CustomCollection {
7883
if let collection = try await CustomCollection.query(on: database)
79-
.filter(\.$url == details.url)
84+
.filter(\.$key == details.key)
8085
.first() {
8186
return collection
8287
} else {
@@ -101,7 +106,7 @@ extension CustomCollection {
101106
}
102107

103108
var details: Details {
104-
.init(name: name, description: description, badge: badge, url: url)
109+
.init(key: key, name: name, description: description, badge: badge, url: url)
105110
}
106111
}
107112

0 commit comments

Comments
 (0)