Skip to content

Commit 58be826

Browse files
committed
Wire BetaGroupProcessor up with TesterProcessor
1 parent ba2d7ff commit 58be826

2 files changed

Lines changed: 34 additions & 7 deletions

File tree

Sources/FileSystem/Beta Group/BetaGroupProcessor.swift

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ public struct BetaGroupProcessor: ResourceProcessor {
1717

1818
var path: ResourcePath
1919

20+
@discardableResult
2021
func write(_ betaGroup: BetaGroup) throws -> File {
2122
try writeFile(betaGroup)
2223
}
@@ -28,14 +29,26 @@ public struct BetaGroupProcessor: ResourceProcessor {
2829
public func write(groupsWithTesters: [(betaGroup: BetaGroup, testers: [BetaTester])]) throws {
2930
deleteFile()
3031

31-
try groupsWithTesters.map { try write($0.betaGroup) }
32+
let betagroups = try groupsWithTesters
33+
.map { try write(betaTesters: $0.testers, into: $0.betaGroup) }
34+
35+
try betagroups.forEach { try write($0) }
36+
}
37+
38+
private func write(betaTesters: [BetaTester], into betaGroup: BetaGroup) throws -> BetaGroup {
39+
let testerProcessor = BetaTesterProcessor(folder: try getFolder())
40+
41+
var group = betaGroup
42+
group.testers = try testerProcessor.write(group: group, testers: betaTesters)
43+
44+
return group
3245
}
3346

3447
}
3548

3649
extension BetaGroup: FileProvider {
3750
var fileName: String {
38-
"\(app.id)_\(groupName).yml"
51+
"\(app.bundleId ?? "")_\(groupName).yml"
3952
}
4053

4154
func fileContent() throws -> FileContent {

Sources/FileSystem/ResourceProcessor.swift

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,23 +33,37 @@ protocol PathProvider {
3333
var path: ResourcePath { get }
3434
}
3535

36+
extension PathProvider {
37+
func getFolder() throws -> Folder {
38+
var folder: Folder
39+
switch path {
40+
case .file(let path):
41+
let standardizedPath = path as NSString
42+
folder = try Folder(path: "").createSubfolderIfNeeded(at: standardizedPath.deletingLastPathComponent)
43+
case .folder(let folderPath):
44+
folder = try Folder(path: "").createSubfolderIfNeeded(at: folderPath)
45+
}
46+
47+
return folder
48+
}
49+
}
50+
3651
extension ResourceWriter {
3752

3853
func writeFile(_ resource: FileProvider) throws -> File {
3954
var file: File
40-
var folder: Folder
4155
var fileName: String
4256

4357
switch path {
4458
case .file(let path):
4559
let standardizedPath = path as NSString
46-
folder = try Folder(path: "").createSubfolderIfNeeded(at: standardizedPath.deletingLastPathComponent)
4760
fileName = standardizedPath.lastPathComponent
48-
case .folder(let folderPath):
61+
case .folder(_):
4962
fileName = resource.fileName
50-
folder = try Folder(path: "").createSubfolderIfNeeded(at: folderPath)
5163
}
5264

65+
let folder: Folder = try getFolder()
66+
5367
switch try resource.fileContent() {
5468
case .data(let data):
5569
file = try folder.createFileIfNeeded(withName: fileName, contents: data)
@@ -77,7 +91,7 @@ extension ResourceWriter {
7791
.files.forEach { try $0.delete() }
7892
}
7993
} catch {
80-
print("\(error)")
94+
// Skip delete failed error, if folder is missing.
8195
}
8296
}
8397
}

0 commit comments

Comments
 (0)