added iOS source code
[wl-app.git] / iOS / WolneLektury / Connection / RestAction.swift
1 //
2 //  RestAction.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 import Alamofire
11
12 enum RestAction{
13
14     //books
15     case filterBooks
16     case books
17     case newest
18     case recommended
19     case audiobooks
20     case setReadingState
21     case getReadingState
22     case getReadingBooks
23     case getReadenBooks
24     case setFavouriteState
25     case getFavouriteState
26     case preview
27     case getFavourites
28
29     case epochs
30     case genres
31     case kinds
32     case blog
33
34     //user
35     case requestToken
36     case accessToken
37     case username
38
39     
40     
41     var endpoint: String{
42         switch self {
43         //books
44         case .filterBooks:
45             return "filter-books/"
46         case .books:
47             return "books/"
48         case .newest:
49             return "newest/"
50         case .recommended:
51             return "recommended/"
52         case .audiobooks:
53             return "audiobooks/"
54         case .setReadingState, .getReadingState:
55             return "reading/"
56         case .getReadingBooks:
57             return "shelf/reading/"
58         case .getReadenBooks:
59             return "shelf/complete/"
60         case .setFavouriteState, .getFavouriteState:
61             return "like/"
62         case .getFavourites:
63             return "shelf/likes/"
64
65         case .epochs:
66             return "epochs"
67         case .genres:
68             return "genres"
69         case .kinds:
70             return "kinds"
71         case .preview:
72             return "preview"
73         case .blog:
74             return "blog"
75
76         //user
77         case .requestToken:
78             return "oauth/request_token/"
79         case .accessToken:
80             return "oauth/access_token/"
81         case .username:
82             return "username/"
83         }
84     }
85     
86     var httpMethod: Alamofire.HTTPMethod{
87         switch self {
88         case .setReadingState, .setFavouriteState:
89             return .post
90         default:
91             return .get
92         }
93     }
94     
95     var tokenRequestedHeader: Bool{
96         return self == .requestToken || self == .accessToken
97     }
98 }