From aa301c9e04c011fdaa41f690612d4d3270b5b25b Mon Sep 17 00:00:00 2001 From: Laurent Date: Thu, 3 Oct 2024 11:46:20 +0200 Subject: [PATCH] cleanup encode methods --- PadelClub/Data/Club.swift | 67 ++---------- PadelClub/Data/Court.swift | 10 +- PadelClub/Data/Event.swift | 29 +---- PadelClub/Data/GroupStage.swift | 20 +--- PadelClub/Data/Match.swift | 73 ++----------- PadelClub/Data/PlayerRegistration.swift | 100 +++-------------- PadelClub/Data/Round.swift | 21 +--- PadelClub/Data/TeamRegistration.swift | 102 +++--------------- PadelClub/Data/TeamScore.swift | 32 +----- PadelClub/Data/Tournament.swift | 62 +++-------- PadelClub/Data/User.swift | 84 +++------------ .../CodingContainer+Extensions.swift | 8 -- .../Tournament/Subscription/Purchase.swift | 6 +- 13 files changed, 97 insertions(+), 517 deletions(-) diff --git a/PadelClub/Data/Club.swift b/PadelClub/Data/Club.swift index 53eca84..58ef226 100644 --- a/PadelClub/Data/Club.swift +++ b/PadelClub/Data/Club.swift @@ -109,67 +109,18 @@ final class Club : ModelObject, Storable, Hashable { var container = encoder.container(keyedBy: CodingKeys.self) try container.encode(id, forKey: ._id) - - if let creator = creator { - try container.encode(creator, forKey: ._creator) - } else { - try container.encodeNil(forKey: ._creator) - } - + try container.encode(creator, forKey: ._creator) try container.encode(name, forKey: ._name) try container.encode(acronym, forKey: ._acronym) - - if let phone = phone { - try container.encode(phone, forKey: ._phone) - } else { - try container.encodeNil(forKey: ._phone) - } - - if let code = code { - try container.encode(code, forKey: ._code) - } else { - try container.encodeNil(forKey: ._code) - } - - if let address = address { - try container.encode(address, forKey: ._address) - } else { - try container.encodeNil(forKey: ._address) - } - - if let city = city { - try container.encode(city, forKey: ._city) - } else { - try container.encodeNil(forKey: ._city) - } - - if let zipCode = zipCode { - try container.encode(zipCode, forKey: ._zipCode) - } else { - try container.encodeNil(forKey: ._zipCode) - } - - if let latitude = latitude { - try container.encode(latitude, forKey: ._latitude) - } else { - try container.encodeNil(forKey: ._latitude) - } - - if let longitude = longitude { - try container.encode(longitude, forKey: ._longitude) - } else { - try container.encodeNil(forKey: ._longitude) - } - + try container.encode(phone, forKey: ._phone) + try container.encode(code, forKey: ._code) + try container.encode(address, forKey: ._address) + try container.encode(city, forKey: ._city) + try container.encode(zipCode, forKey: ._zipCode) + try container.encode(latitude, forKey: ._latitude) + try container.encode(longitude, forKey: ._longitude) try container.encode(courtCount, forKey: ._courtCount) - - if let broadcastCode { - try container.encode(broadcastCode, forKey: ._broadcastCode) - } else { - try container.encodeNil(forKey: ._broadcastCode) - } - - // try container.encode(alphabeticalName, forKey: ._alphabeticalName) + try container.encode(broadcastCode, forKey: ._broadcastCode) } } diff --git a/PadelClub/Data/Court.swift b/PadelClub/Data/Court.swift index 22f29a0..e7751bc 100644 --- a/PadelClub/Data/Court.swift +++ b/PadelClub/Data/Court.swift @@ -79,15 +79,9 @@ final class Court : ModelObject, Storable, Hashable { try container.encode(id, forKey: ._id) try container.encode(index, forKey: ._index) try container.encode(club, forKey: ._club) - - if let name = name { - try container.encode(name, forKey: ._name) - } else { - try container.encodeNil(forKey: ._name) - } - + try container.encode(name, forKey: ._name) try container.encode(exitAllowed, forKey: ._exitAllowed) try container.encode(indoor, forKey: ._indoor) } - + } diff --git a/PadelClub/Data/Event.swift b/PadelClub/Data/Event.swift index 54c68d8..0517c72 100644 --- a/PadelClub/Data/Event.swift +++ b/PadelClub/Data/Event.swift @@ -120,32 +120,11 @@ extension Event { var container = encoder.container(keyedBy: CodingKeys.self) try container.encode(id, forKey: ._id) - - if let creator = creator { - try container.encode(creator, forKey: ._creator) - } else { - try container.encodeNil(forKey: ._creator) - } - - if let club = club { - try container.encode(club, forKey: ._club) - } else { - try container.encodeNil(forKey: ._club) - } - + try container.encode(creator, forKey: ._creator) + try container.encode(club, forKey: ._club) try container.encode(creationDate, forKey: ._creationDate) - - if let name = name { - try container.encode(name, forKey: ._name) - } else { - try container.encodeNil(forKey: ._name) - } - - if let tenupId = tenupId { - try container.encode(tenupId, forKey: ._tenupId) - } else { - try container.encodeNil(forKey: ._tenupId) - } + try container.encode(name, forKey: ._name) + try container.encode(tenupId, forKey: ._tenupId) } } diff --git a/PadelClub/Data/GroupStage.swift b/PadelClub/Data/GroupStage.swift index 32e07b2..5f61df1 100644 --- a/PadelClub/Data/GroupStage.swift +++ b/PadelClub/Data/GroupStage.swift @@ -404,24 +404,10 @@ final class GroupStage: ModelObject, Storable { try container.encode(tournament, forKey: ._tournament) try container.encode(index, forKey: ._index) try container.encode(size, forKey: ._size) + try container.encode(format, forKey: ._format) + try container.encode(startDate, forKey: ._startDate) + try container.encode(name, forKey: ._name) - if let format = format { - try container.encode(format, forKey: ._format) - } else { - try container.encodeNil(forKey: ._format) - } - - if let startDate = startDate { - try container.encode(startDate, forKey: ._startDate) - } else { - try container.encodeNil(forKey: ._startDate) - } - - if let name = name { - try container.encode(name, forKey: ._name) - } else { - try container.encodeNil(forKey: ._name) - } } func insertOnServer() { diff --git a/PadelClub/Data/Match.swift b/PadelClub/Data/Match.swift index 1e8c918..2dbfe74 100644 --- a/PadelClub/Data/Match.swift +++ b/PadelClub/Data/Match.swift @@ -893,71 +893,18 @@ defer { var container = encoder.container(keyedBy: CodingKeys.self) try container.encode(id, forKey: ._id) - - if let round = round { - try container.encode(round, forKey: ._round) - } else { - try container.encodeNil(forKey: ._round) - } - - if let groupStage = groupStage { - try container.encode(groupStage, forKey: ._groupStage) - } else { - try container.encodeNil(forKey: ._groupStage) - } - - if let startDate = startDate { - try container.encode(startDate, forKey: ._startDate) - } else { - try container.encodeNil(forKey: ._startDate) - } - - if let endDate = endDate { - try container.encode(endDate, forKey: ._endDate) - } else { - try container.encodeNil(forKey: ._endDate) - } - + try container.encode(round, forKey: ._round) + try container.encode(groupStage, forKey: ._groupStage) + try container.encode(startDate, forKey: ._startDate) + try container.encode(endDate, forKey: ._endDate) + try container.encode(format, forKey: ._format) + try container.encode(servingTeamId, forKey: ._servingTeamId) try container.encode(index, forKey: ._index) - - if let format = format { - try container.encode(format, forKey: ._format) - } else { - try container.encodeNil(forKey: ._format) - } - - if let servingTeamId = servingTeamId { - try container.encode(servingTeamId, forKey: ._servingTeamId) - } else { - try container.encodeNil(forKey: ._servingTeamId) - } - - if let winningTeamId = winningTeamId { - try container.encode(winningTeamId, forKey: ._winningTeamId) - } else { - try container.encodeNil(forKey: ._winningTeamId) - } - - if let losingTeamId = losingTeamId { - try container.encode(losingTeamId, forKey: ._losingTeamId) - } else { - try container.encodeNil(forKey: ._losingTeamId) - } - - if let name = name { - try container.encode(name, forKey: ._name) - } else { - try container.encodeNil(forKey: ._name) - } - + try container.encode(winningTeamId, forKey: ._winningTeamId) + try container.encode(losingTeamId, forKey: ._losingTeamId) + try container.encode(name, forKey: ._name) try container.encode(disabled, forKey: ._disabled) - - if let courtIndex = courtIndex { - try container.encode(courtIndex, forKey: ._courtIndex) - } else { - try container.encodeNil(forKey: ._courtIndex) - } - + try container.encode(courtIndex, forKey: ._courtIndex) try container.encode(confirmed, forKey: ._confirmed) } diff --git a/PadelClub/Data/PlayerRegistration.swift b/PadelClub/Data/PlayerRegistration.swift index da256cf..534e953 100644 --- a/PadelClub/Data/PlayerRegistration.swift +++ b/PadelClub/Data/PlayerRegistration.swift @@ -348,96 +348,24 @@ final class PlayerRegistration: ModelObject, Storable { var container = encoder.container(keyedBy: CodingKeys.self) try container.encode(id, forKey: ._id) - - if let teamRegistration = teamRegistration { - try container.encode(teamRegistration, forKey: ._teamRegistration) - } else { - try container.encodeNil(forKey: ._teamRegistration) - } + try container.encode(teamRegistration, forKey: ._teamRegistration) try container.encode(firstName, forKey: ._firstName) try container.encode(lastName, forKey: ._lastName) - - if let licenceId = licenceId { - try container.encode(licenceId, forKey: ._licenceId) - } else { - try container.encodeNil(forKey: ._licenceId) - } - - if let rank = rank { - try container.encode(rank, forKey: ._rank) - } else { - try container.encodeNil(forKey: ._rank) - } - - if let paymentType = paymentType { - try container.encode(paymentType, forKey: ._paymentType) - } else { - try container.encodeNil(forKey: ._paymentType) - } - - if let sex = sex { - try container.encode(sex, forKey: ._sex) - } else { - try container.encodeNil(forKey: ._sex) - } - - if let tournamentPlayed = tournamentPlayed { - try container.encode(tournamentPlayed, forKey: ._tournamentPlayed) - } else { - try container.encodeNil(forKey: ._tournamentPlayed) - } - - if let points = points { - try container.encode(points, forKey: ._points) - } else { - try container.encodeNil(forKey: ._points) - } - - if let clubName = clubName { - try container.encode(clubName, forKey: ._clubName) - } else { - try container.encodeNil(forKey: ._clubName) - } - - if let ligueName = ligueName { - try container.encode(ligueName, forKey: ._ligueName) - } else { - try container.encodeNil(forKey: ._ligueName) - } - - if let assimilation = assimilation { - try container.encode(assimilation, forKey: ._assimilation) - } else { - try container.encodeNil(forKey: ._assimilation) - } - - if let phoneNumber = phoneNumber { - try container.encode(phoneNumber, forKey: ._phoneNumber) - } else { - try container.encodeNil(forKey: ._phoneNumber) - } - - if let email = email { - try container.encode(email, forKey: ._email) - } else { - try container.encodeNil(forKey: ._email) - } - - if let birthdate = birthdate { - try container.encode(birthdate, forKey: ._birthdate) - } else { - try container.encodeNil(forKey: ._birthdate) - } - + try container.encode(licenceId, forKey: ._licenceId) + try container.encode(rank, forKey: ._rank) + try container.encode(paymentType, forKey: ._paymentType) + try container.encode(sex, forKey: ._sex) + try container.encode(tournamentPlayed, forKey: ._tournamentPlayed) + try container.encode(points, forKey: ._points) + try container.encode(clubName, forKey: ._clubName) + try container.encode(ligueName, forKey: ._ligueName) + try container.encode(assimilation, forKey: ._assimilation) + try container.encode(phoneNumber, forKey: ._phoneNumber) + try container.encode(email, forKey: ._email) + try container.encode(birthdate, forKey: ._birthdate) try container.encode(computedRank, forKey: ._computedRank) - - if let source = source { - try container.encode(source, forKey: ._source) - } else { - try container.encodeNil(forKey: ._source) - } - + try container.encode(source, forKey: ._source) try container.encode(hasArrived, forKey: ._hasArrived) } diff --git a/PadelClub/Data/Round.swift b/PadelClub/Data/Round.swift index 6f73258..37ac186 100644 --- a/PadelClub/Data/Round.swift +++ b/PadelClub/Data/Round.swift @@ -730,23 +730,10 @@ defer { try container.encode(groupStageLoserBracket, forKey: ._groupStageLoserBracket) try container.encode(loserBracketMode, forKey: ._loserBracketMode) - if let parent = parent { - try container.encode(parent, forKey: ._parent) - } else { - try container.encodeNil(forKey: ._parent) - } - - if let format = format { - try container.encode(format, forKey: ._format) - } else { - try container.encodeNil(forKey: ._format) - } - - if let startDate = startDate { - try container.encode(startDate, forKey: ._startDate) - } else { - try container.encodeNil(forKey: ._startDate) - } + try container.encode(parent, forKey: ._parent) + try container.encode(format, forKey: ._format) + try container.encode(startDate, forKey: ._startDate) + } func insertOnServer() { diff --git a/PadelClub/Data/TeamRegistration.swift b/PadelClub/Data/TeamRegistration.swift index 1c90fef..aa52420 100644 --- a/PadelClub/Data/TeamRegistration.swift +++ b/PadelClub/Data/TeamRegistration.swift @@ -540,99 +540,27 @@ final class TeamRegistration: ModelObject, Storable { try container.encode(id, forKey: ._id) try container.encode(tournament, forKey: ._tournament) - - if let groupStage = groupStage { - try container.encode(groupStage, forKey: ._groupStage) - } else { - try container.encodeNil(forKey: ._groupStage) - } - - if let registrationDate = registrationDate { - try container.encode(registrationDate, forKey: ._registrationDate) - } else { - try container.encodeNil(forKey: ._registrationDate) - } - - if let callDate = callDate { - try container.encode(callDate, forKey: ._callDate) - } else { - try container.encodeNil(forKey: ._callDate) - } - - if let bracketPosition = bracketPosition { - try container.encode(bracketPosition, forKey: ._bracketPosition) - } else { - try container.encodeNil(forKey: ._bracketPosition) - } - - if let groupStagePosition = groupStagePosition { - try container.encode(groupStagePosition, forKey: ._groupStagePosition) - } else { - try container.encodeNil(forKey: ._groupStagePosition) - } - - if let comment = comment { - try container.encode(comment, forKey: ._comment) - } else { - try container.encodeNil(forKey: ._comment) - } - - if let source = source { - try container.encode(source, forKey: ._source) - } else { - try container.encodeNil(forKey: ._source) - } - - if let sourceValue = sourceValue { - try container.encode(sourceValue, forKey: ._sourceValue) - } else { - try container.encodeNil(forKey: ._sourceValue) - } - - if let logo = logo { - try container.encode(logo, forKey: ._logo) - } else { - try container.encodeNil(forKey: ._logo) - } - - if let name = name { - try container.encode(name, forKey: ._name) - } else { - try container.encodeNil(forKey: ._name) - } - + try container.encode(groupStage, forKey: ._groupStage) + try container.encode(registrationDate, forKey: ._registrationDate) + try container.encode(callDate, forKey: ._callDate) + try container.encode(bracketPosition, forKey: ._bracketPosition) + try container.encode(groupStagePosition, forKey: ._groupStagePosition) + try container.encode(comment, forKey: ._comment) + try container.encode(source, forKey: ._source) + try container.encode(sourceValue, forKey: ._sourceValue) + try container.encode(logo, forKey: ._logo) + try container.encode(name, forKey: ._name) try container.encode(walkOut, forKey: ._walkOut) try container.encode(wildCardBracket, forKey: ._wildCardBracket) try container.encode(wildCardGroupStage, forKey: ._wildCardGroupStage) try container.encode(weight, forKey: ._weight) - - if let lockedWeight = lockedWeight { - try container.encode(lockedWeight, forKey: ._lockedWeight) - } else { - try container.encodeNil(forKey: ._lockedWeight) - } - - if let confirmationDate = confirmationDate { - try container.encode(confirmationDate, forKey: ._confirmationDate) - } else { - try container.encodeNil(forKey: ._confirmationDate) - } - + try container.encode(lockedWeight, forKey: ._lockedWeight) + try container.encode(confirmationDate, forKey: ._confirmationDate) try container.encode(qualified, forKey: ._qualified) - - if let finalRanking { - try container.encode(finalRanking, forKey: ._finalRanking) - } else { - try container.encodeNil(forKey: ._finalRanking) - } - - if let pointsEarned { - try container.encode(pointsEarned, forKey: ._pointsEarned) - } else { - try container.encodeNil(forKey: ._pointsEarned) - } + try container.encode(finalRanking, forKey: ._finalRanking) + try container.encode(pointsEarned, forKey: ._pointsEarned) } - + func insertOnServer() { self.tournamentStore.teamRegistrations.writeChangeAndInsertOnServer(instance: self) for playerRegistration in self.unsortedPlayers() { diff --git a/PadelClub/Data/TeamScore.swift b/PadelClub/Data/TeamScore.swift index 8948d2d..9a7c94b 100644 --- a/PadelClub/Data/TeamScore.swift +++ b/PadelClub/Data/TeamScore.swift @@ -85,34 +85,12 @@ final class TeamScore: ModelObject, Storable { try container.encode(id, forKey: ._id) try container.encode(match, forKey: ._match) - - if let teamRegistration = teamRegistration { - try container.encode(teamRegistration, forKey: ._teamRegistration) - } else { - try container.encodeNil(forKey: ._teamRegistration) - } - - //try container.encode(playerRegistrations, forKey: ._playerRegistrations) - - if let score = score { - try container.encode(score, forKey: ._score) - } else { - try container.encodeNil(forKey: ._score) - } - - if let walkOut = walkOut { - try container.encode(walkOut, forKey: ._walkOut) - } else { - try container.encodeNil(forKey: ._walkOut) - } - - if let luckyLoser = luckyLoser { - try container.encode(luckyLoser, forKey: ._luckyLoser) - } else { - try container.encodeNil(forKey: ._luckyLoser) - } + try container.encode(teamRegistration, forKey: ._teamRegistration) + try container.encode(score, forKey: ._score) + try container.encode(walkOut, forKey: ._walkOut) + try container.encode(luckyLoser, forKey: ._luckyLoser) } - + func insertOnServer() { self.tournamentStore.teamScores.writeChangeAndInsertOnServer(instance: self) } diff --git a/PadelClub/Data/Tournament.swift b/PadelClub/Data/Tournament.swift index cab2239..036241d 100644 --- a/PadelClub/Data/Tournament.swift +++ b/PadelClub/Data/Tournament.swift @@ -230,69 +230,39 @@ final class Tournament : ModelObject, Storable { var container = encoder.container(keyedBy: CodingKeys.self) try container.encode(id, forKey: ._id) - if let event { - try container.encode(event, forKey: ._event) - } else { - try container.encodeNil(forKey: ._event) - } - if let name { - try container.encode(name, forKey: ._name) - } else { - try container.encodeNil(forKey: ._name) - } + try container.encode(event, forKey: ._event) + try container.encode(name, forKey: ._name) + try container.encode(startDate, forKey: ._startDate) - if let endDate { - try container.encode(endDate, forKey: ._endDate) - } else { - try container.encodeNil(forKey: ._endDate) - } + try container.encode(endDate, forKey: ._endDate) try container.encode(creationDate, forKey: ._creationDate) try container.encode(isPrivate, forKey: ._isPrivate) - if let groupStageFormat { - try container.encode(groupStageFormat, forKey: ._groupStageFormat) - } else { - try container.encodeNil(forKey: ._groupStageFormat) - } - if let roundFormat { - try container.encode(roundFormat, forKey: ._roundFormat) - } else { - try container.encodeNil(forKey: ._roundFormat) - } - if let loserRoundFormat { - try container.encode(loserRoundFormat, forKey: ._loserRoundFormat) - } else { - try container.encodeNil(forKey: ._loserRoundFormat) - } + + try container.encode(groupStageFormat, forKey: ._groupStageFormat) + try container.encode(roundFormat, forKey: ._roundFormat) + try container.encode(loserRoundFormat, forKey: ._loserRoundFormat) + try container.encode(groupStageSortMode, forKey: ._groupStageSortMode) try container.encode(groupStageCount, forKey: ._groupStageCount) - if let rankSourceDate { - try container.encode(rankSourceDate, forKey: ._rankSourceDate) - } else { - try container.encodeNil(forKey: ._rankSourceDate) - } + + try container.encodeOptional(rankSourceDate, forKey: ._rankSourceDate) + try container.encode(dayDuration, forKey: ._dayDuration) try container.encode(teamCount, forKey: ._teamCount) try container.encode(teamSorting, forKey: ._teamSorting) try container.encode(federalCategory, forKey: ._federalCategory) try container.encode(federalLevelCategory, forKey: ._federalLevelCategory) try container.encode(federalAgeCategory, forKey: ._federalAgeCategory) - if let closedRegistrationDate { - try container.encode(closedRegistrationDate, forKey: ._closedRegistrationDate) - } else { - try container.encodeNil(forKey: ._closedRegistrationDate) - } - + + try container.encodeOptional(closedRegistrationDate, forKey: ._closedRegistrationDate) + try container.encode(groupStageAdditionalQualified, forKey: ._groupStageAdditionalQualified) try container.encode(courtCount, forKey: ._courtCount) try container.encode(prioritizeClubMembers, forKey: ._prioritizeClubMembers) try container.encode(qualifiedPerGroupStage, forKey: ._qualifiedPerGroupStage) try container.encode(teamsPerGroupStage, forKey: ._teamsPerGroupStage) - if let entryFee { - try container.encode(entryFee, forKey: ._entryFee) - } else { - try container.encodeNil(forKey: ._entryFee) - } + try container.encode(entryFee, forKey: ._entryFee) try self._encodePayment(container: &container) try container.encode(additionalEstimationDuration, forKey: ._additionalEstimationDuration) diff --git a/PadelClub/Data/User.swift b/PadelClub/Data/User.swift index 59e3e1f..251d750 100644 --- a/PadelClub/Data/User.swift +++ b/PadelClub/Data/User.swift @@ -185,84 +185,24 @@ class User: ModelObject, UserBase, Storable { try container.encode(email, forKey: ._email) try container.encode(clubs, forKey: ._clubs) - if let umpireCode = umpireCode { - try container.encode(umpireCode, forKey: ._umpireCode) - } else { - try container.encodeNil(forKey: ._umpireCode) - } - - if let licenceId = licenceId { - try container.encode(licenceId, forKey: ._licenceId) - } else { - try container.encodeNil(forKey: ._licenceId) - } - + try container.encodeOptional(umpireCode, forKey: ._umpireCode) + try container.encodeOptional(licenceId, forKey: ._licenceId) try container.encode(firstName, forKey: ._firstName) try container.encode(lastName, forKey: ._lastName) - - if let phone = phone { - try container.encode(phone, forKey: ._phone) - } else { - try container.encodeNil(forKey: ._phone) - } - - if let country = country { - try container.encode(country, forKey: ._country) - } else { - try container.encodeNil(forKey: ._country) - } - - if let summonsMessageBody = summonsMessageBody { - try container.encode(summonsMessageBody, forKey: ._summonsMessageBody) - } else { - try container.encodeNil(forKey: ._summonsMessageBody) - } - - if let summonsMessageSignature = summonsMessageSignature { - try container.encode(summonsMessageSignature, forKey: ._summonsMessageSignature) - } else { - try container.encodeNil(forKey: ._summonsMessageSignature) - } - - if let summonsAvailablePaymentMethods = summonsAvailablePaymentMethods { - try container.encode(summonsAvailablePaymentMethods, forKey: ._summonsAvailablePaymentMethods) - } else { - try container.encodeNil(forKey: ._summonsAvailablePaymentMethods) - } - + try container.encodeOptional(phone, forKey: ._phone) + try container.encodeOptional(country, forKey: ._country) + try container.encodeOptional(summonsMessageBody, forKey: ._summonsMessageBody) + try container.encodeOptional(summonsMessageSignature, forKey: ._summonsMessageSignature) + try container.encodeOptional(summonsAvailablePaymentMethods, forKey: ._summonsAvailablePaymentMethods) try container.encode(summonsDisplayFormat, forKey: ._summonsDisplayFormat) try container.encode(summonsDisplayEntryFee, forKey: ._summonsDisplayEntryFee) try container.encode(summonsUseFullCustomMessage, forKey: ._summonsUseFullCustomMessage) - if let matchFormatsDefaultDuration = matchFormatsDefaultDuration { - try container.encode(matchFormatsDefaultDuration, forKey: ._matchFormatsDefaultDuration) - } else { - try container.encodeNil(forKey: ._matchFormatsDefaultDuration) - } - - if let bracketMatchFormatPreference = bracketMatchFormatPreference { - try container.encode(bracketMatchFormatPreference, forKey: ._bracketMatchFormatPreference) - } else { - try container.encodeNil(forKey: ._bracketMatchFormatPreference) - } - - if let groupStageMatchFormatPreference = groupStageMatchFormatPreference { - try container.encode(groupStageMatchFormatPreference, forKey: ._groupStageMatchFormatPreference) - } else { - try container.encodeNil(forKey: ._groupStageMatchFormatPreference) - } - - if let loserBracketMatchFormatPreference = loserBracketMatchFormatPreference { - try container.encode(loserBracketMatchFormatPreference, forKey: ._loserBracketMatchFormatPreference) - } else { - try container.encodeNil(forKey: ._loserBracketMatchFormatPreference) - } - - if let deviceId { - try container.encode(deviceId, forKey: ._deviceId) - } else { - try container.encodeNil(forKey: ._deviceId) - } + try container.encodeOptional(matchFormatsDefaultDuration, forKey: ._matchFormatsDefaultDuration) + try container.encodeOptional(bracketMatchFormatPreference, forKey: ._bracketMatchFormatPreference) + try container.encodeOptional(groupStageMatchFormatPreference, forKey: ._groupStageMatchFormatPreference) + try container.encodeOptional(loserBracketMatchFormatPreference, forKey: ._loserBracketMatchFormatPreference) + try container.encode(deviceId, forKey: ._deviceId) try container.encode(loserBracketMode, forKey: ._loserBracketMode) } diff --git a/PadelClub/Extensions/CodingContainer+Extensions.swift b/PadelClub/Extensions/CodingContainer+Extensions.swift index ed3a808..3f05814 100644 --- a/PadelClub/Extensions/CodingContainer+Extensions.swift +++ b/PadelClub/Extensions/CodingContainer+Extensions.swift @@ -27,14 +27,6 @@ extension KeyedDecodingContainer { extension KeyedEncodingContainer { - mutating func encodeIfPresent(_ value: T?, forKey key: Key) throws { - guard let value else { - try self.encodeNil(forKey: key) - return - } - try self.encode(value, forKey: key) - } - mutating func encodeAndEncryptIfPresent(_ value: Data?, forKey key: Key) throws { guard let value else { try encodeNil(forKey: key) diff --git a/PadelClub/Views/Tournament/Subscription/Purchase.swift b/PadelClub/Views/Tournament/Subscription/Purchase.swift index 2c13fc2..c37c957 100644 --- a/PadelClub/Views/Tournament/Subscription/Purchase.swift +++ b/PadelClub/Views/Tournament/Subscription/Purchase.swift @@ -59,9 +59,9 @@ class Purchase: ModelObject, Storable { try container.encodeAndEncryptIfPresent(self.user.data(using: .utf8), forKey: .user) try container.encode(self.purchaseDate, forKey: .purchaseDate) try container.encode(self.productId, forKey: .productId) - try container.encodeIfPresent(self.quantity, forKey: .quantity) - try container.encodeIfPresent(self.revocationDate, forKey: .revocationDate) - try container.encodeIfPresent(self.expirationDate, forKey: .expirationDate) + try container.encode(self.quantity, forKey: .quantity) + try container.encode(self.revocationDate, forKey: .revocationDate) + try container.encode(self.expirationDate, forKey: .expirationDate) } required init(from decoder: any Decoder) throws {