Archived
1
This repository has been archived on 2020-06-04. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
tagtunes/TagTunes/SearchResult.swift
2015-09-15 13:43:18 +02:00

65 lines
1.7 KiB
Swift

//
// SearchResult.swift
// TagTunes
//
// Created by Kim Wittenburg on 31.08.15.
// Copyright © 2015 Kim Wittenburg. All rights reserved.
//
import Cocoa
/// Represents an `Album` returned fromm the
/// [Search API](https://www.apple.com/itunes/affiliates/resources/documentation/itunes-store-web-service-search-api.html).
public class SearchResult {
public let id: iTunesId
public let name: String
public let censoredName: String
public let viewURL: NSURL
public let artwork: Artwork
public let trackCount: Int
public let releaseDate: NSDate
public let genre: String
public let artistName: String
public init(representedAlbum: Album) {
id = representedAlbum.id
name = representedAlbum.name
censoredName = representedAlbum.censoredName
viewURL = representedAlbum.viewURL
artwork = representedAlbum.artwork
trackCount = representedAlbum.trackCount
releaseDate = representedAlbum.releaseDate
genre = representedAlbum.genre
artistName = representedAlbum.artistName
}
}
extension SearchResult: Hashable {
public var hashValue: Int {
return Int(id)
}
}
extension Album {
public convenience init(searchResult: SearchResult) {
self.init(id: searchResult.id, name: searchResult.name, censoredName: searchResult.censoredName, viewURL: searchResult.viewURL, artwork: searchResult.artwork, trackCount: searchResult.trackCount, releaseDate: searchResult.releaseDate, genre: searchResult.genre, artistName: searchResult.artistName)
}
}
public func ==(lhs: SearchResult, rhs: SearchResult) -> Bool {
return lhs.id == rhs.id
}