Methods for editing/deleting audio records
This commit is contained in:
parent
94e4605af3
commit
c7a2234b3f
@ -148,6 +148,7 @@
|
|||||||
7AA514E02D0B75B3001CAC50 /* StorageService+Events.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AA514DF2D0B75B3001CAC50 /* StorageService+Events.swift */; };
|
7AA514E02D0B75B3001CAC50 /* StorageService+Events.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AA514DF2D0B75B3001CAC50 /* StorageService+Events.swift */; };
|
||||||
7AA515D02D9ABCC800EB3418 /* RecordPlayerService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AA515CF2D9ABCC800EB3418 /* RecordPlayerService.swift */; };
|
7AA515D02D9ABCC800EB3418 /* RecordPlayerService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AA515CF2D9ABCC800EB3418 /* RecordPlayerService.swift */; };
|
||||||
7AA515D22D9ABCE600EB3418 /* RecordPlayerServiceProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AA515D12D9ABCE600EB3418 /* RecordPlayerServiceProtocol.swift */; };
|
7AA515D22D9ABCE600EB3418 /* RecordPlayerServiceProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AA515D12D9ABCE600EB3418 /* RecordPlayerServiceProtocol.swift */; };
|
||||||
|
7AA515DA2D9ADEF000EB3418 /* StorageError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AA515D92D9ADEF000EB3418 /* StorageError.swift */; };
|
||||||
7AA7BC3525A5DFB80053A5D5 /* ExceptionCatcher in Frameworks */ = {isa = PBXBuildFile; productRef = 7A813DC02508C4D900CC93B9 /* ExceptionCatcher */; };
|
7AA7BC3525A5DFB80053A5D5 /* ExceptionCatcher in Frameworks */ = {isa = PBXBuildFile; productRef = 7A813DC02508C4D900CC93B9 /* ExceptionCatcher */; };
|
||||||
7AA7BC3625A5DFB80053A5D5 /* PKHUD in Frameworks */ = {isa = PBXBuildFile; productRef = 7AABDE1C2532F3EB0041AFC6 /* PKHUD */; };
|
7AA7BC3625A5DFB80053A5D5 /* PKHUD in Frameworks */ = {isa = PBXBuildFile; productRef = 7AABDE1C2532F3EB0041AFC6 /* PKHUD */; };
|
||||||
7AAAFAD32C4D0FD00050410D /* ACImageSliderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AAAFAD22C4D0FD00050410D /* ACImageSliderView.swift */; };
|
7AAAFAD32C4D0FD00050410D /* ACImageSliderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AAAFAD22C4D0FD00050410D /* ACImageSliderView.swift */; };
|
||||||
@ -448,6 +449,7 @@
|
|||||||
7AA514DF2D0B75B3001CAC50 /* StorageService+Events.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "StorageService+Events.swift"; sourceTree = "<group>"; };
|
7AA514DF2D0B75B3001CAC50 /* StorageService+Events.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "StorageService+Events.swift"; sourceTree = "<group>"; };
|
||||||
7AA515CF2D9ABCC800EB3418 /* RecordPlayerService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecordPlayerService.swift; sourceTree = "<group>"; };
|
7AA515CF2D9ABCC800EB3418 /* RecordPlayerService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecordPlayerService.swift; sourceTree = "<group>"; };
|
||||||
7AA515D12D9ABCE600EB3418 /* RecordPlayerServiceProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecordPlayerServiceProtocol.swift; sourceTree = "<group>"; };
|
7AA515D12D9ABCE600EB3418 /* RecordPlayerServiceProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecordPlayerServiceProtocol.swift; sourceTree = "<group>"; };
|
||||||
|
7AA515D92D9ADEF000EB3418 /* StorageError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StorageError.swift; sourceTree = "<group>"; };
|
||||||
7AAAFAD22C4D0FD00050410D /* ACImageSliderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ACImageSliderView.swift; sourceTree = "<group>"; };
|
7AAAFAD22C4D0FD00050410D /* ACImageSliderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ACImageSliderView.swift; sourceTree = "<group>"; };
|
||||||
7AAAFAD92C4D1AFE0050410D /* Zoomable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Zoomable.swift; sourceTree = "<group>"; };
|
7AAAFAD92C4D1AFE0050410D /* Zoomable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Zoomable.swift; sourceTree = "<group>"; };
|
||||||
7AAAFADB2C4D1E130050410D /* ACImageSliderView+Modifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ACImageSliderView+Modifier.swift"; sourceTree = "<group>"; };
|
7AAAFADB2C4D1E130050410D /* ACImageSliderView+Modifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ACImageSliderView+Modifier.swift"; sourceTree = "<group>"; };
|
||||||
@ -1085,6 +1087,7 @@
|
|||||||
7AA514DF2D0B75B3001CAC50 /* StorageService+Events.swift */,
|
7AA514DF2D0B75B3001CAC50 /* StorageService+Events.swift */,
|
||||||
7ABDA80E2D8723F90083C715 /* StorageService+AudioRecords.swift */,
|
7ABDA80E2D8723F90083C715 /* StorageService+AudioRecords.swift */,
|
||||||
7A54BFD22D43B95E00176D6D /* DbUpdatePolicy.swift */,
|
7A54BFD22D43B95E00176D6D /* DbUpdatePolicy.swift */,
|
||||||
|
7AA515D92D9ADEF000EB3418 /* StorageError.swift */,
|
||||||
);
|
);
|
||||||
path = StorageService;
|
path = StorageService;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@ -1663,6 +1666,7 @@
|
|||||||
7AB4E4382D3D0C5C0006D052 /* VehiclesArchive.swift in Sources */,
|
7AB4E4382D3D0C5C0006D052 /* VehiclesArchive.swift in Sources */,
|
||||||
7A64A21C2C19E87B00284124 /* OsagoDto.swift in Sources */,
|
7A64A21C2C19E87B00284124 /* OsagoDto.swift in Sources */,
|
||||||
7AA515D22D9ABCE600EB3418 /* RecordPlayerServiceProtocol.swift in Sources */,
|
7AA515D22D9ABCE600EB3418 /* RecordPlayerServiceProtocol.swift in Sources */,
|
||||||
|
7AA515DA2D9ADEF000EB3418 /* StorageError.swift in Sources */,
|
||||||
7A809F392D66755B00CF1B3C /* Error+Canceled.swift in Sources */,
|
7A809F392D66755B00CF1B3C /* Error+Canceled.swift in Sources */,
|
||||||
7AF6D21D2677C1680086EA64 /* Osago.swift in Sources */,
|
7AF6D21D2677C1680086EA64 /* Osago.swift in Sources */,
|
||||||
7A1CF81629A42117007962DA /* Realm.swift in Sources */,
|
7A1CF81629A42117007962DA /* Realm.swift in Sources */,
|
||||||
|
|||||||
26
AutoCatCore/Services/StorageService/StorageError.swift
Normal file
26
AutoCatCore/Services/StorageService/StorageError.swift
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
//
|
||||||
|
// StorageError.swift
|
||||||
|
// AutoCatCore
|
||||||
|
//
|
||||||
|
// Created by Selim Mustafaev on 31.03.2025.
|
||||||
|
// Copyright © 2025 Selim Mustafaev. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
|
||||||
|
public enum StorageError: LocalizedError {
|
||||||
|
|
||||||
|
case vehicleNotFound
|
||||||
|
case noteNotFound
|
||||||
|
case eventNotFound
|
||||||
|
case recordNotFound
|
||||||
|
|
||||||
|
public var errorDescription: String? {
|
||||||
|
switch self {
|
||||||
|
case .vehicleNotFound: "Vehicle not found in realm database"
|
||||||
|
case .noteNotFound: "Vehicle note not found in realm database"
|
||||||
|
case .eventNotFound: "Event not found in realm database"
|
||||||
|
case .recordNotFound: "Audio record not found in realm database"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -23,4 +23,26 @@ public extension StorageService {
|
|||||||
.sorted(byKeyPath: "addedDate", ascending: false)
|
.sorted(byKeyPath: "addedDate", ascending: false)
|
||||||
.map(\.dto)
|
.map(\.dto)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func deleteRecord(id: TimeInterval) async throws {
|
||||||
|
|
||||||
|
guard let record = realm.object(ofType: AudioRecord.self, forPrimaryKey: id) else {
|
||||||
|
throw StorageError.recordNotFound
|
||||||
|
}
|
||||||
|
|
||||||
|
try await realm.asyncWrite {
|
||||||
|
realm.delete(record)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func updateRecord(_ record: AudioRecordDto) async throws {
|
||||||
|
|
||||||
|
guard let record = realm.object(ofType: AudioRecord.self, forPrimaryKey: record.id) else {
|
||||||
|
throw StorageError.recordNotFound
|
||||||
|
}
|
||||||
|
|
||||||
|
try await realm.asyncWrite {
|
||||||
|
realm.add(record, update: .modified)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,21 +9,6 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
import RealmSwift
|
import RealmSwift
|
||||||
|
|
||||||
public enum StorageError: LocalizedError {
|
|
||||||
|
|
||||||
case vehicleNotFound
|
|
||||||
case noteNotFound
|
|
||||||
case eventNotFound
|
|
||||||
|
|
||||||
public var errorDescription: String? {
|
|
||||||
switch self {
|
|
||||||
case .vehicleNotFound: "Vehicle not found in realm database"
|
|
||||||
case .noteNotFound: "Vehicle note not found in realm database"
|
|
||||||
case .eventNotFound: "Event not found in realm database"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public actor StorageService: StorageServiceProtocol {
|
public actor StorageService: StorageServiceProtocol {
|
||||||
|
|
||||||
let settingsService: SettingsServiceProtocol
|
let settingsService: SettingsServiceProtocol
|
||||||
|
|||||||
@ -35,4 +35,6 @@ public protocol StorageServiceProtocol: Sendable {
|
|||||||
// Audio records
|
// Audio records
|
||||||
func add(record: AudioRecordDto) async throws
|
func add(record: AudioRecordDto) async throws
|
||||||
func loadRecords() async throws -> [AudioRecordDto]
|
func loadRecords() async throws -> [AudioRecordDto]
|
||||||
|
func deleteRecord(id: TimeInterval) async throws
|
||||||
|
func updateRecord(_ record: AudioRecordDto) async throws
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user