@@ -8,37 +8,54 @@ import Foundation
88
99@objc public class MusicLibraryImpl : NSObject {
1010
11- @objc public func getTracksAsync( _ options : [ String : Any ] ) -> [ String : Any ] {
12- NSLog ( " 🎵 [MusicLibrary] getTracksAsync called with options : %@ " , options )
11+ @objc public func getTracksAsync( first : Int , after : String ? , sortBy : [ String ] , directory : String ? ) -> [ String : Any ] {
12+ NSLog ( " 🎵 [MusicLibrary] getTracksAsync called with first : %d, after: %@, sortBy: %@, directory: %@ " , first , after ?? " nil " , sortBy , directory ?? " nil " )
1313
14- let result = PaginatedResult < Track > ( items: [ ] , hasNextPage: false )
15- let resultDict = result. toDictionary ( )
16-
17- NSLog ( " 🎵 [MusicLibrary] getTracksAsync returning: %@ " , resultDict)
18- return resultDict
14+ do {
15+ let trackOptions = TrackOptions ( after: after, first: first, sortBy: sortBy, directory: directory)
16+ NSLog ( " 🎵 [MusicLibrary] getTracksAsync trackOptions: %@ " , trackOptions)
17+ let result = GetTracksQuery . getTracks ( options: trackOptions)
18+ let resultDict = result. toDictionary ( )
19+
20+ NSLog ( " 🎵 [MusicLibrary] getTracksAsync returning: %@ " , resultDict)
21+ return resultDict
22+ } catch {
23+ NSLog ( " 🎵 [MusicLibrary] getTracksAsync error: %@ " , error. localizedDescription)
24+ return DataConverter . createErrorDictionary (
25+ code: " QUERY_ERROR " ,
26+ message: " Failed to query tracks: \( error. localizedDescription) "
27+ )
28+ }
1929 }
2030
2131 @objc public func getTrackMetadataAsync( _ trackId: String ) -> [ String : Any ] {
2232 NSLog ( " 🎵 [MusicLibrary] getTrackMetadataAsync called with trackId: %@ " , trackId)
2333
24- let metadata = TrackMetadata ( id: trackId, duration: nil , bitrate: nil , sampleRate: nil , channels: nil , format: nil , title: nil , artist: nil , album: nil , year: nil , genre: nil , track: nil , disc: nil , composer: nil , lyricist: nil , lyrics: nil , albumArtist: nil , comment: nil )
25- let resultDict = metadata. toDictionary ( )
26-
27- NSLog ( " 🎵 [MusicLibrary] getTrackMetadataAsync returning: %@ " , resultDict)
28- return resultDict
34+ if let metadata = GetTrackMetadataQuery . getTrackMetadata ( trackId: trackId) {
35+ let resultDict = metadata. toDictionary ( )
36+ NSLog ( " 🎵 [MusicLibrary] getTrackMetadataAsync returning: %@ " , resultDict)
37+ return resultDict
38+ } else {
39+ NSLog ( " 🎵 [MusicLibrary] getTrackMetadataAsync: track not found " )
40+ return DataConverter . createErrorDictionary (
41+ code: " TRACK_NOT_FOUND " ,
42+ message: " Track with id \( trackId) not found "
43+ )
44+ }
2945 }
3046
3147 @objc public func getTracksByAlbumAsync( _ albumId: String ) -> [ [ String : Any ] ] {
3248 NSLog ( " 🎵 [MusicLibrary] getTracksByAlbumAsync called with albumId: %@ " , albumId)
3349
34- let result : [ [ String : Any ] ] = [ ]
50+ let tracks = GetTracksByAlbumQuery . getTracksByAlbum ( albumId: albumId)
51+ let result = tracks. map { $0. toDictionary ( ) }
3552
3653 NSLog ( " 🎵 [MusicLibrary] getTracksByAlbumAsync returning: %@ " , result)
3754 return result
3855 }
3956
40- @objc public func getTracksByArtistAsync( _ artistId: String , options : [ String : Any ] ) -> [ String : Any ] {
41- NSLog ( " 🎵 [MusicLibrary] getTracksByArtistAsync called with artistId: %@, options : %@ " , artistId, options )
57+ @objc public func getTracksByArtistAsync( _ artistId: String , first : Int , after : String ? , sortBy : [ String ] , directory : String ? ) -> [ String : Any ] {
58+ NSLog ( " 🎵 [MusicLibrary] getTracksByArtistAsync called with artistId: %@, first : %d, after: %@, sortBy: %@, directory: %@ " , artistId, first , after ?? " nil " , sortBy , directory ?? " nil " )
4259
4360 let result = PaginatedResult < Track > ( items: [ ] , hasNextPage: false )
4461 let resultDict = result. toDictionary ( )
@@ -47,8 +64,8 @@ import Foundation
4764 return resultDict
4865 }
4966
50- @objc public func getAlbumsAsync( _ options : [ String : Any ] ) -> [ String : Any ] {
51- NSLog ( " 🎵 [MusicLibrary] getAlbumsAsync called with options : %@ " , options )
67+ @objc public func getAlbumsAsync( first : Int , after : String ? , sortBy : [ String ] ) -> [ String : Any ] {
68+ NSLog ( " 🎵 [MusicLibrary] getAlbumsAsync called with first : %d, after: %@, sortBy: %@ " , first , after ?? " nil " , sortBy )
5269
5370 let result = PaginatedResult < Album > ( items: [ ] , hasNextPage: false )
5471 let resultDict = result. toDictionary ( )
@@ -66,8 +83,8 @@ import Foundation
6683 return result
6784 }
6885
69- @objc public func getArtistsAsync( _ options : [ String : Any ] ) -> [ String : Any ] {
70- NSLog ( " 🎵 [MusicLibrary] getArtistsAsync called with options : %@ " , options )
86+ @objc public func getArtistsAsync( first : Int , after : String ? , sortBy : [ String ] ) -> [ String : Any ] {
87+ NSLog ( " 🎵 [MusicLibrary] getArtistsAsync called with first : %d, after: %@, sortBy: %@ " , first , after ?? " nil " , sortBy )
7188
7289 let result = PaginatedResult < Artist > ( items: [ ] , hasNextPage: false )
7390 let resultDict = result. toDictionary ( )
0 commit comments