Showing
1 changed file
with
47 additions
and
14 deletions
| ... | @@ -43,6 +43,9 @@ import UIKit | ... | @@ -43,6 +43,9 @@ import UIKit |
| 43 | // Coupon sets data | 43 | // Coupon sets data |
| 44 | var couponSets: [CouponSetItemModel] = [] | 44 | var couponSets: [CouponSetItemModel] = [] |
| 45 | 45 | ||
| 46 | + // Merchants data | ||
| 47 | + var merchants: [MerchantModel] = [] | ||
| 48 | + | ||
| 46 | // Profile data | 49 | // Profile data |
| 47 | var profileModel: ProfileModel? | 50 | var profileModel: ProfileModel? |
| 48 | var profileSection: SectionModel? | 51 | var profileSection: SectionModel? |
| ... | @@ -151,27 +154,57 @@ import UIKit | ... | @@ -151,27 +154,57 @@ import UIKit |
| 151 | 154 | ||
| 152 | self.couponSets = couponSets | 155 | self.couponSets = couponSets |
| 153 | 156 | ||
| 154 | - // Create coupon sets section with real data | 157 | + // Load merchants after getting coupon sets |
| 155 | - if !self.couponSets.isEmpty { | 158 | + self.loadMerchants() |
| 156 | - let couponSetsSection = SectionModel( | ||
| 157 | - sectionType: .myRewardsHorizontalCouponsets, | ||
| 158 | - title: "Προσφορές", | ||
| 159 | - items: self.couponSets, | ||
| 160 | - itemType: .couponSets | ||
| 161 | - ) | ||
| 162 | - self.sections.append(couponSetsSection) | ||
| 163 | - } | ||
| 164 | 159 | ||
| 165 | - // Reload table view with new sections | ||
| 166 | - DispatchQueue.main.async { | ||
| 167 | - self.tableView.reloadData() | ||
| 168 | - } | ||
| 169 | } failureCallback: { [weak self] errorCode in | 160 | } failureCallback: { [weak self] errorCode in |
| 170 | print("Failed to load coupon sets: \(errorCode)") | 161 | print("Failed to load coupon sets: \(errorCode)") |
| 171 | // No sections added on failure - table will be empty | 162 | // No sections added on failure - table will be empty |
| 172 | } | 163 | } |
| 173 | } | 164 | } |
| 174 | 165 | ||
| 166 | + // MARK: - Merchants Loading | ||
| 167 | + private func loadMerchants() { | ||
| 168 | + // Load merchants from WarplySDK (using enhanced getMerchants method) | ||
| 169 | + WarplySDK.shared.getMerchants { [weak self] merchants in | ||
| 170 | + guard let self = self, let merchants = merchants else { | ||
| 171 | + // If merchants fail to load, still create coupon sets section without filtering | ||
| 172 | + self?.createCouponSetsSection() | ||
| 173 | + return | ||
| 174 | + } | ||
| 175 | + | ||
| 176 | + self.merchants = merchants | ||
| 177 | + print("✅ [MyRewardsViewController] Loaded \(merchants.count) merchants") | ||
| 178 | + | ||
| 179 | + // For now, create the coupon sets section without filtering | ||
| 180 | + // Later this will be enhanced to filter by merchant categories | ||
| 181 | + self.createCouponSetsSection() | ||
| 182 | + | ||
| 183 | + } failureCallback: { [weak self] errorCode in | ||
| 184 | + print("Failed to load merchants: \(errorCode)") | ||
| 185 | + // If merchants fail, still show coupon sets without filtering | ||
| 186 | + self?.createCouponSetsSection() | ||
| 187 | + } | ||
| 188 | + } | ||
| 189 | + | ||
| 190 | + private func createCouponSetsSection() { | ||
| 191 | + // Create coupon sets section with real data | ||
| 192 | + if !self.couponSets.isEmpty { | ||
| 193 | + let couponSetsSection = SectionModel( | ||
| 194 | + sectionType: .myRewardsHorizontalCouponsets, | ||
| 195 | + title: "Προσφορές", | ||
| 196 | + items: self.couponSets, | ||
| 197 | + itemType: .couponSets | ||
| 198 | + ) | ||
| 199 | + self.sections.append(couponSetsSection) | ||
| 200 | + } | ||
| 201 | + | ||
| 202 | + // Reload table view with new sections | ||
| 203 | + DispatchQueue.main.async { | ||
| 204 | + self.tableView.reloadData() | ||
| 205 | + } | ||
| 206 | + } | ||
| 207 | + | ||
| 175 | // MARK: - Profile Loading | 208 | // MARK: - Profile Loading |
| 176 | public func loadProfile() { | 209 | public func loadProfile() { |
| 177 | // Always attempt to load profile, regardless of authentication status | 210 | // Always attempt to load profile, regardless of authentication status | ... | ... |
-
Please register or login to post a comment