From 5d1ea8492aa6d4be39036165d00016d6951ae91a Mon Sep 17 00:00:00 2001 From: Lucas DELANIER Date: Thu, 6 Jun 2024 13:53:35 +0200 Subject: [PATCH] feature/in-progress-card (#35) Co-authored-by: ludelanier Reviewed-on: https://codefirst.iut.uca.fr/git/AllDev/Apple/pulls/35 --- .../globeImage.imageset/Contents.json | 21 +++++++++ .../globeImage.imageset/globe.png | Bin 0 -> 39958 bytes Sources/AllInApp/AllIn/Components/Menu.swift | 9 ++-- .../AllIn/Components/ResultBanner.swift | 13 ++++-- .../AllIn/Components/ReviewCard.swift | 44 ++++++++++++++---- .../AllIn/Components/userPicture.swift | 4 +- .../Ressources/en.lproj/Localizable.strings | 11 ++--- .../Ressources/fr.lproj/Localizable.strings | 12 ++--- .../AllInApp/AllIn/Views/DetailsView.swift | 4 +- Sources/AllInApp/AllInWidgets/Info.plist | 16 +++++++ .../Sources/Api/Factory/FactoryApiBet.swift | 19 +++++++- Sources/Model/Sources/Model/BetDetail.swift | 23 +++++++-- Sources/StubLib/Sources/StubLib/Stub.swift | 2 +- 13 files changed, 135 insertions(+), 43 deletions(-) create mode 100644 Sources/AllInApp/AllIn/Assets.xcassets/globeImage.imageset/Contents.json create mode 100644 Sources/AllInApp/AllIn/Assets.xcassets/globeImage.imageset/globe.png diff --git a/Sources/AllInApp/AllIn/Assets.xcassets/globeImage.imageset/Contents.json b/Sources/AllInApp/AllIn/Assets.xcassets/globeImage.imageset/Contents.json new file mode 100644 index 0000000..f689ec9 --- /dev/null +++ b/Sources/AllInApp/AllIn/Assets.xcassets/globeImage.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "globe.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Sources/AllInApp/AllIn/Assets.xcassets/globeImage.imageset/globe.png b/Sources/AllInApp/AllIn/Assets.xcassets/globeImage.imageset/globe.png new file mode 100644 index 0000000000000000000000000000000000000000..bb108f6d540dde22252165bd20cf73bf4c22b1ff GIT binary patch literal 39958 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 com.apple.widgetkit-extension + NSAppTransportSecurity + + NSAllowsArbitraryLoads + + NSExceptionDomains + + codefirst.iut.uca.fr + + NSExceptionAllowsInsecureHTTPLoads + + NSIncludesSubdomains + + + + + diff --git a/Sources/Api/Sources/Api/Factory/FactoryApiBet.swift b/Sources/Api/Sources/Api/Factory/FactoryApiBet.swift index bc95ae9..18c39fa 100644 --- a/Sources/Api/Sources/Api/Factory/FactoryApiBet.swift +++ b/Sources/Api/Sources/Api/Factory/FactoryApiBet.swift @@ -63,6 +63,8 @@ public class FactoryApiBet: FactoryBet { } var participations: [Participation] = [] + var wonParticipation: Participation? + var userParticipation: Participation? if let participationsJson = json["participations"] as? [[String: Any]] { do { @@ -82,7 +84,22 @@ public class FactoryApiBet: FactoryBet { } } - return BetDetail(bet: bet, answers: answers, participations: participations) + if let participationJson = json["wonParticipation"] as? [String: Any] { + do { + wonParticipation = try JSONDecoder().decode(Participation.self, from: JSONSerialization.data(withJSONObject: participationJson)) + } catch { + print("Error decoding participations: \(error)") + } + } + if let participationUserJson = json["userParticipation"] as? [String: Any] { + do { + userParticipation = try JSONDecoder().decode(Participation.self, from: JSONSerialization.data(withJSONObject: participationUserJson)) + } catch { + print("Error decoding participations: \(error)") + } + } + + return BetDetail(bet: bet, answers: answers, participations: participations, wonParticipation: wonParticipation, userParticipation: userParticipation) } public func betTypeString(fromType type: String) -> String { diff --git a/Sources/Model/Sources/Model/BetDetail.swift b/Sources/Model/Sources/Model/BetDetail.swift index 8f139f5..8f3f9a9 100644 --- a/Sources/Model/Sources/Model/BetDetail.swift +++ b/Sources/Model/Sources/Model/BetDetail.swift @@ -20,7 +20,19 @@ public class BetDetail: ObservableObject { public private(set) var participations: [Participation] /// The final answer selected for the bet, if available. - public private(set) var finalAnswer: String? + public private(set) var wonParticipation: Participation? + public private(set) var userParticipation: Participation? + + public var odds: Float? { + guard let wonParticipation = self.wonParticipation else { + return nil + } + if let matchingAnswer = self.answers.first(where: { $0.response == wonParticipation.answer }) { + return matchingAnswer.odds + } else { + return nil + } + } /// Custom Constructor /// @@ -29,18 +41,19 @@ public class BetDetail: ObservableObject { /// - answers: Details about the answers available for the bet. /// - participations: List of user participations in the bet. /// - finalAnswer: The final answer selected for the bet, if available. - public init(bet: Bet, answers: [AnswerDetail], participations: [Participation], finalAnswer: String? = nil) { + public init(bet: Bet, answers: [AnswerDetail], participations: [Participation], wonParticipation: Participation? = nil, userParticipation: Participation? = nil) { self.bet = bet self.answers = answers self.participations = participations - self.finalAnswer = finalAnswer + self.wonParticipation = wonParticipation + self.userParticipation = userParticipation } /// Updates the final answer selected for the bet. /// /// - Parameter newFinalAnswer: The new final answer for the bet. - public func updateFinalAnswer(newFinalAnswer: String) { - self.finalAnswer = newFinalAnswer + public func updateFinalAnswer(wonParticipation: Participation) { + self.wonParticipation = wonParticipation } /// Adds a new user participation to the list of participations for the bet. diff --git a/Sources/StubLib/Sources/StubLib/Stub.swift b/Sources/StubLib/Sources/StubLib/Stub.swift index d3539ac..6195d0f 100644 --- a/Sources/StubLib/Sources/StubLib/Stub.swift +++ b/Sources/StubLib/Sources/StubLib/Stub.swift @@ -91,7 +91,7 @@ struct Stub { } public mutating func add(bet: Bet) { - let newBetDetail = BetDetail(bet: bet, answers: [], participations: [], finalAnswer: "test") + let newBetDetail = BetDetail(bet: bet, answers: [], participations: []) self.betsDetail.append(newBetDetail) } }