added iOS source code
[wl-app.git] / iOS / WolneLektury / Model / BookModel.swift
1 //
2 //  BookModel.swift
3 //  WolneLektury
4 //
5 //  Created by Pawel Dabrowski on 30/05/2018.
6 //  Copyright © 2018 Fundacja Nowoczesna Polska. All rights reserved.
7 //
8
9 import UIKit
10
11 struct BookModel: Codable{
12
13     var localId: Int?
14
15     var kind: String!
16     var author: String!
17     var url: String!
18     var title: String!
19     var cover: String!
20     var epoch: String!
21     var href: String!
22     var genre: String!
23     var slug: String!
24     var key: String!
25     var simple_thumb: String!
26     var fileName: String?
27     var epub: String?
28     var has_audio: Bool!
29     var cover_color: String!
30     var full_sort_key: String!
31     
32     var bgColor: UIColor {
33         return UIColor(hex: cover_color)
34     }
35
36     private enum CodingKeys: String, CodingKey {
37         case localId
38         case kind
39         case author
40         case url
41         case title
42         case cover
43         case epoch
44         case href
45         case genre
46         case slug
47         case key
48         case simple_thumb
49         case fileName
50         case epub
51         case has_audio
52         case cover_color
53         case full_sort_key
54     }
55
56     
57     // returns image url
58     func getCoverThumbUrl() -> URL?{
59         return simple_thumb.getPhotoUrl()
60     }
61     
62     func getAttributedAuthorAndTitle(titleFont: UIFont, descFont: UIFont) -> NSAttributedString{
63         let titleAttributedText = NSMutableAttributedString(attributedString: NSAttributedString(string: author, font: titleFont))
64         titleAttributedText.append(NSAttributedString(string:  "\n\n", font: UIFont.systemFont(ofSize: 2)))
65
66         titleAttributedText.append(NSAttributedString(string:  title, font: descFont))
67         return titleAttributedText
68     }
69 }