Vasilis
...@@ -13,12 +13,20 @@ import UIKit ...@@ -13,12 +13,20 @@ import UIKit
13 13
14 class DataModel { 14 class DataModel {
15 var data: Array<NSDictionary> = [] 15 var data: Array<NSDictionary> = []
16 + var data2: Array<swiftApi.CouponItemModel> = []
16 17
17 init() { //initializer method 18 init() { //initializer method
19 +
20 + let instanceOfMySwiftApi = swiftApi()
21 + let couponsData = instanceOfMySwiftApi.getCoupons()
22 +
23 + self.data2 = couponsData
24 +
25 +
18 let instanceOfMyApi = MyApi() 26 let instanceOfMyApi = MyApi()
19 let couponSets = instanceOfMyApi.getCouponSets(withActive: true, andVisible: true, andUuids: nil) 27 let couponSets = instanceOfMyApi.getCouponSets(withActive: true, andVisible: true, andUuids: nil)
20 let coupons = instanceOfMyApi.getCoupons() as AnyObject? 28 let coupons = instanceOfMyApi.getCoupons() as AnyObject?
21 - 29 +
22 if let myCouponsSetsDictionary = couponSets as? [String : AnyObject] { 30 if let myCouponsSetsDictionary = couponSets as? [String : AnyObject] {
23 let couponSetsData = (myCouponsSetsDictionary["MAPP_COUPON"] as! Array<NSMutableDictionary>) 31 let couponSetsData = (myCouponsSetsDictionary["MAPP_COUPON"] as! Array<NSMutableDictionary>)
24 if let myCouponsDictionary = coupons as? [String : AnyObject] { 32 if let myCouponsDictionary = coupons as? [String : AnyObject] {
...@@ -33,20 +41,26 @@ class DataModel { ...@@ -33,20 +41,26 @@ class DataModel {
33 if c["couponset_uuid"] as! String == s["uuid"] as! String { 41 if c["couponset_uuid"] as! String == s["uuid"] as! String {
34 var temp = NSMutableDictionary(dictionary: s); 42 var temp = NSMutableDictionary(dictionary: s);
35 // temp.addEntries(from: c as! [AnyHashable : Any]) 43 // temp.addEntries(from: c as! [AnyHashable : Any])
36 - 44 +
37 temp.setValue(c as! [AnyHashable : Any],forKey: "coupon_data") 45 temp.setValue(c as! [AnyHashable : Any],forKey: "coupon_data")
38 - 46 +
39 self.data.append(temp as NSDictionary) 47 self.data.append(temp as NSDictionary)
40 } 48 }
41 - 49 +
42 } 50 }
43 } 51 }
44 - 52 +
45 } 53 }
46 } 54 }
47 } 55 }
48 } 56 }
49 } 57 }
58 +
59 + var getData2: Array<swiftApi.CouponItemModel> {
60 + get { // getter
61 + return data2
62 + }
63 + }
50 64
51 var getData: Array<NSDictionary> { 65 var getData: Array<NSDictionary> {
52 get { // getter 66 get { // getter
...@@ -143,7 +157,7 @@ extension CouponsView { ...@@ -143,7 +157,7 @@ extension CouponsView {
143 } 157 }
144 158
145 struct couponView: View { 159 struct couponView: View {
146 - var result: NSDictionary 160 + var result: swiftApi.CouponItemModel
147 var index: Int 161 var index: Int
148 var parentView: UIView 162 var parentView: UIView
149 163
...@@ -154,19 +168,20 @@ extension CouponsView { ...@@ -154,19 +168,20 @@ extension CouponsView {
154 } 168 }
155 169
156 static func convertDateFormat(inputDate: String) -> String { 170 static func convertDateFormat(inputDate: String) -> String {
157 - let olDateFormatter = DateFormatter() 171 + let dateFormatter = DateFormatter()
158 - olDateFormatter.dateFormat = "yyyy-MM-dd hh:mm:ss" 172 + dateFormatter.dateFormat = "yyyy-MM-dd hh:mm:ss"
159 - 173 + if let date = dateFormatter.date(from: inputDate) {
160 - let oldDate = olDateFormatter.date(from: inputDate) 174 + dateFormatter.dateFormat = "dd/MM/yyyy"
161 - 175 + let resultString = dateFormatter.string(from: date)
162 - let convertDateFormatter = DateFormatter() 176 + return resultString
163 - convertDateFormatter.dateFormat = "dd/MM/yyyy" 177 + } else {
164 - 178 + return ""
165 - return convertDateFormatter.string(from: oldDate!) 179 + }
166 } 180 }
167 181
168 var body: some View { 182 var body: some View {
169 - let couponData = result["coupon_data"] as? [String: Any] ?? ["":""] 183 +// let couponData = result["coupon_data"] as? [String: Any] ?? ["":""]
184 + let couponSetData = result.couponset_data
170 185
171 186
172 VStack(alignment: .leading) { 187 VStack(alignment: .leading) {
...@@ -181,7 +196,7 @@ extension CouponsView { ...@@ -181,7 +196,7 @@ extension CouponsView {
181 couponBarcodeViewController.didMove(toParent: UIHostingController(rootView: self)) 196 couponBarcodeViewController.didMove(toParent: UIHostingController(rootView: self))
182 } label: { 197 } label: {
183 HStack(alignment: .center) { 198 HStack(alignment: .center) {
184 - ImageView(withURL: result["img_preview"] as! String) 199 + ImageView(withURL: couponSetData?.img_preview ?? "")
185 .frame(maxWidth: self.uiscreen.width * 0.15) 200 .frame(maxWidth: self.uiscreen.width * 0.15)
186 .padding(.leading , self.uiscreen.width * 0.055) 201 .padding(.leading , self.uiscreen.width * 0.055)
187 VLine() 202 VLine()
...@@ -193,17 +208,17 @@ extension CouponsView { ...@@ -193,17 +208,17 @@ extension CouponsView {
193 .padding(.bottom, self.uiscreen.height * 0.0075) 208 .padding(.bottom, self.uiscreen.height * 0.0075)
194 Spacer() 209 Spacer()
195 VStack { 210 VStack {
196 - Text(CouponsView.couponView.localizedWithParameter(parameter: result["name"] as? String ?? "")) 211 + Text(CouponsView.couponView.localizedWithParameter(parameter: couponSetData?.name ?? ""))
197 .fontWeight(.medium) 212 .fontWeight(.medium)
198 .foregroundColor(Color(red: 0.22745098039215686, green: 0.3215686274509804, blue: 0.4)) 213 .foregroundColor(Color(red: 0.22745098039215686, green: 0.3215686274509804, blue: 0.4))
199 .frame(maxWidth: self.uiscreen.width * 0.35, maxHeight: .infinity, alignment: .leading) 214 .frame(maxWidth: self.uiscreen.width * 0.35, maxHeight: .infinity, alignment: .leading)
200 .font(.system(size: 15)) 215 .font(.system(size: 15))
201 - Text(CouponsView.couponView.localizedWithParameter(parameter: couponData["discount"] as? String ?? "")) 216 + Text(CouponsView.couponView.localizedWithParameter(parameter: result.discount ?? ""))
202 .fontWeight(.bold) 217 .fontWeight(.bold)
203 .foregroundColor(Color(red: 0.22745098039215686, green: 0.3215686274509804, blue: 0.4)) 218 .foregroundColor(Color(red: 0.22745098039215686, green: 0.3215686274509804, blue: 0.4))
204 .frame(maxWidth: self.uiscreen.width * 0.35, maxHeight: self.uiscreen.height * 0.05, alignment: .leading) 219 .frame(maxWidth: self.uiscreen.width * 0.35, maxHeight: self.uiscreen.height * 0.05, alignment: .leading)
205 .font(.system(size: 47)) 220 .font(.system(size: 47))
206 - Text(CouponsView.couponView.localizedWithParameter(parameter: "Ισχύει εώς " + CouponsView.couponView.convertDateFormat(inputDate: couponData["expiration"] as? String ?? ""))) 221 + Text(CouponsView.couponView.localizedWithParameter(parameter: "Ισχύει εώς " + (result.expiration ?? "")))
207 .fontWeight(.medium) 222 .fontWeight(.medium)
208 .foregroundColor(Color(red: 0.3803921568627451, green: 0.44313725490196076, blue: 0.5058823529411764)) 223 .foregroundColor(Color(red: 0.3803921568627451, green: 0.44313725490196076, blue: 0.5058823529411764))
209 .frame(maxWidth: self.uiscreen.width * 0.35, maxHeight: .infinity, alignment: .leading) 224 .frame(maxWidth: self.uiscreen.width * 0.35, maxHeight: .infinity, alignment: .leading)
...@@ -213,7 +228,7 @@ extension CouponsView { ...@@ -213,7 +228,7 @@ extension CouponsView {
213 .padding(.top, self.uiscreen.height * 0.03) 228 .padding(.top, self.uiscreen.height * 0.03)
214 .padding(.bottom, self.uiscreen.height * 0.03) 229 .padding(.bottom, self.uiscreen.height * 0.03)
215 VStack { 230 VStack {
216 - Text(CouponsView.couponView.localizedWithParameter(parameter: result["short_description"] as! String)) 231 + Text(CouponsView.couponView.localizedWithParameter(parameter: couponSetData?.short_description ?? ""))
217 .fontWeight(.medium) 232 .fontWeight(.medium)
218 .foregroundColor(Color(red: 0.3803921568627451, green: 0.44313725490196076, blue: 0.5058823529411764)) 233 .foregroundColor(Color(red: 0.3803921568627451, green: 0.44313725490196076, blue: 0.5058823529411764))
219 .frame(maxWidth: self.uiscreen.width * 0.22, maxHeight: self.uiscreen.height * 0.10) 234 .frame(maxWidth: self.uiscreen.width * 0.22, maxHeight: self.uiscreen.height * 0.10)
...@@ -238,13 +253,23 @@ extension CouponsView { ...@@ -238,13 +253,23 @@ extension CouponsView {
238 253
239 @available(iOS 13.0.0, *) 254 @available(iOS 13.0.0, *)
240 struct CouponsView: View { 255 struct CouponsView: View {
241 - 256 +
242 - var data:Array<NSDictionary> = DataModel().getData 257 +// var data:Array<swiftApi.CouponItemModel> = []
258 +
259 + var data:Array<swiftApi.CouponItemModel> = DataModel().getData2
243 260
244 var parentView: UIView 261 var parentView: UIView
245 262
246 var uiscreen = UIScreen.main.bounds 263 var uiscreen = UIScreen.main.bounds
247 264
265 +// init() { //initializer method
266 +//
267 +// let instanceOfMySwiftApi = swiftApi()
268 +// let couponsData = instanceOfMySwiftApi.getCoupons()
269 +//
270 +// self.data = couponsData
271 +// }
272 +
248 func goBack(){ 273 func goBack(){
249 for subview in parentView.subviews { 274 for subview in parentView.subviews {
250 if(subview.tag == 1) { 275 if(subview.tag == 1) {
......
...@@ -153,15 +153,23 @@ public class swiftApi { ...@@ -153,15 +153,23 @@ public class swiftApi {
153 self.category = dictionary["category"] as? String? ?? "" 153 self.category = dictionary["category"] as? String? ?? ""
154 self.barcode = dictionary["barcode"] as? String? ?? "" 154 self.barcode = dictionary["barcode"] as? String? ?? ""
155 self.status = dictionary["status"] as? Int? ?? nil 155 self.status = dictionary["status"] as? Int? ?? nil
156 - self.couponset_data = dictionary["couponset_data"] as? CouponSetItemModel? ?? nil
157 156
158 - let expirationObject = dictionary["expiration"] as? [String: Any]? ?? ["":""] 157 + if let couponSetData = dictionary["couponset_data"] as? [String: Any]? ?? ["":""] {
159 - let expirationString = expirationObject?["value"] as? String? ?? "" 158 +
159 + let tempCouponset = CouponSetItemModel(dictionary: couponSetData)
160 +
161 + self.couponset_data = tempCouponset
162 + } else {
163 + self.couponset_data = nil
164 + }
165 +
166 +
167 + let expirationString = dictionary["expiration"] as? String? ?? ""
160 168
161 // Example expirationString: Optional(2022-12-05 01:55) 169 // Example expirationString: Optional(2022-12-05 01:55)
162 170
163 let dateFormatter = DateFormatter() 171 let dateFormatter = DateFormatter()
164 - dateFormatter.dateFormat = "yyyy-MM-dd hh:mm" 172 + dateFormatter.dateFormat = "yyyy-MM-dd hh:mm:ss"
165 if let date = dateFormatter.date(from: expirationString ?? "") { 173 if let date = dateFormatter.date(from: expirationString ?? "") {
166 dateFormatter.dateFormat = "dd/MM/yyyy" 174 dateFormatter.dateFormat = "dd/MM/yyyy"
167 let resultString = dateFormatter.string(from: date) 175 let resultString = dateFormatter.string(from: date)
...@@ -205,15 +213,15 @@ public class swiftApi { ...@@ -205,15 +213,15 @@ public class swiftApi {
205 let couponsData = (myCouponsDictionary["result"] as! Array<NSMutableDictionary>) 213 let couponsData = (myCouponsDictionary["result"] as! Array<NSMutableDictionary>)
206 if let sets = couponSetsData as? NSArray { 214 if let sets = couponSetsData as? NSArray {
207 for set in sets { 215 for set in sets {
208 - let s = set as! [String : Any] 216 + let s = set as! NSDictionary
209 if let cpns = couponsData as? NSArray { 217 if let cpns = couponsData as? NSArray {
210 for coupon in cpns { 218 for coupon in cpns {
211 - var c = coupon as! [String : Any] 219 + var c = coupon as! NSDictionary
212 // var temp = NSMutableDictionary(dictionary: s); 220 // var temp = NSMutableDictionary(dictionary: s);
213 if c["couponset_uuid"] as! String == s["uuid"] as! String { 221 if c["couponset_uuid"] as! String == s["uuid"] as! String {
214 let temp = NSMutableDictionary(dictionary: c); 222 let temp = NSMutableDictionary(dictionary: c);
215 223
216 - temp.setValue(s as [AnyHashable : Any],forKey: "couponset_data") 224 + temp.setValue(s as! [AnyHashable : Any],forKey: "couponset_data")
217 225
218 let tempCoupon = CouponItemModel(dictionary: temp as! [String : Any]) 226 let tempCoupon = CouponItemModel(dictionary: temp as! [String : Any])
219 couponsArray.append(tempCoupon) 227 couponsArray.append(tempCoupon)
......