mirror of
https://github.com/sudosylabs/vnidrop.git
synced 2026-08-05 18:39:55 +02:00
21 lines
889 B
Swift
21 lines
889 B
Swift
import Foundation
|
|
|
|
/// Builds a `.vnd` invitation filename from a transfer name.
|
|
func invitationFileName(_ transferName: String) -> String {
|
|
let trimmed = transferName.trimmingCharacters(in: .whitespacesAndNewlines)
|
|
let base = trimmed.isEmpty ? "invitation" : trimmed
|
|
let safe = base.components(separatedBy: CharacterSet.alphanumerics.inverted.subtracting(CharacterSet(charactersIn: "-_ ")))
|
|
.joined()
|
|
.replacingOccurrences(of: " ", with: "-")
|
|
let name = safe.isEmpty ? "invitation" : safe
|
|
return "\(name).\(vniDropInvitationExtension)"
|
|
}
|
|
|
|
/// Writes a temporary `.vnd` file for sharing/exporting.
|
|
func writeTemporaryInvitation(ticket: String, transferName: String) throws -> URL {
|
|
let dir = FileManager.default.temporaryDirectory
|
|
let url = dir.appendingPathComponent(invitationFileName(transferName))
|
|
try ticket.write(to: url, atomically: true, encoding: .utf8)
|
|
return url
|
|
}
|