Renamed import swift-openfoodfacts-sdk => OpenFoodFacts
This commit is contained in:
13
Sources/OpenFoodFacts/types/Images.swift
Normal file
13
Sources/OpenFoodFacts/types/Images.swift
Normal file
@@ -0,0 +1,13 @@
|
||||
// public struct Images: Codable {
|
||||
// private var otherData: [String: Data] = [:]
|
||||
|
||||
// mutating func setDetail<T: Encodable>(key: String, value: T) throws {
|
||||
// let encodedValue = try JSONEncoder().encode(value)
|
||||
// otherData[key] = encodedValue
|
||||
// }
|
||||
|
||||
// func getDetail<T: Decodable>(key: String, type: T.Type) throws -> T? {
|
||||
// guard let data = otherData[key] else { return nil }
|
||||
// return try JSONDecoder().decode(type, from: data)
|
||||
// }
|
||||
// }
|
||||
21
Sources/OpenFoodFacts/types/Ingredient.swift
Normal file
21
Sources/OpenFoodFacts/types/Ingredient.swift
Normal file
@@ -0,0 +1,21 @@
|
||||
public struct Ingredient: Codable {
|
||||
var fromPalmOil: String? = nil
|
||||
var id: String? = nil
|
||||
var origin: String? = nil
|
||||
var percent: Float? = nil
|
||||
var rank: Int? = 0
|
||||
var text: String? = nil
|
||||
var vegan: String? = nil
|
||||
var vegetarian: String? = nil
|
||||
|
||||
private enum CodingKeys: String, CodingKey {
|
||||
case fromPalmOil = "from_palm_oil"
|
||||
case id
|
||||
case origin
|
||||
case percent
|
||||
case rank
|
||||
case text
|
||||
case vegan
|
||||
case vegetarian
|
||||
}
|
||||
}
|
||||
6
Sources/OpenFoodFacts/types/LanguagesCodes.swift
Normal file
6
Sources/OpenFoodFacts/types/LanguagesCodes.swift
Normal file
@@ -0,0 +1,6 @@
|
||||
|
||||
public struct LanguagesCodes: Codable {
|
||||
var en: String? = nil
|
||||
var fr: String? = nil
|
||||
var pl: String? = nil
|
||||
}
|
||||
13
Sources/OpenFoodFacts/types/NutrientLevels.swift
Normal file
13
Sources/OpenFoodFacts/types/NutrientLevels.swift
Normal file
@@ -0,0 +1,13 @@
|
||||
public struct NutrientLevels: Codable {
|
||||
private var fat: String? = nil
|
||||
private var salt: String? = nil
|
||||
private var saturatedFat: String? = nil
|
||||
private var sugars: String? = nil
|
||||
|
||||
private enum CodingKeys: String, CodingKey {
|
||||
case fat
|
||||
case salt
|
||||
case saturatedFat = "saturated-fat"
|
||||
case sugars
|
||||
}
|
||||
}
|
||||
243
Sources/OpenFoodFacts/types/Nutriments.swift
Normal file
243
Sources/OpenFoodFacts/types/Nutriments.swift
Normal file
@@ -0,0 +1,243 @@
|
||||
public struct Nutriments: Codable {
|
||||
var calcium: Float? = 0.0
|
||||
var calciumValue: Float? = 0.0
|
||||
var calcium100G: Float? = 0.0
|
||||
var calciumServing: Float? = 0.0
|
||||
var calciumUnit: String? = nil
|
||||
|
||||
var carbohydrates: Float? = 0.0
|
||||
var carbohydratesValue: Float? = 0.0
|
||||
var carbohydrates100G: Float? = 0.0
|
||||
var carbohydratesServing: Float? = 0.0
|
||||
var carbohydratesUnit: String? = nil
|
||||
|
||||
var carbonFootprintFromKnownIngredientsProduct: Float? = 0.0
|
||||
var carbonFootprintFromKnownIngredients100G: Float? = 0.0
|
||||
var carbonFootprintFromKnownIngredientsServing: Float? = 0.0
|
||||
|
||||
var cholesterol: Float? = 0.0
|
||||
var cholesterolValue: Float? = 0.0
|
||||
var cholesterol100G: Float? = 0.0
|
||||
var cholesterolServing: Float? = 0.0
|
||||
var cholesterolUnit: String? = nil
|
||||
|
||||
var energy: Int? = 0
|
||||
var energyKcal: Int? = 0
|
||||
var energyKj: Int? = 0
|
||||
var energyValue: Int? = 0
|
||||
var energyKcalValue: Int? = 0
|
||||
var energyKjValue: Int? = 0
|
||||
var energy100G: Int? = 0
|
||||
var energyKcal100G: Int? = 0
|
||||
var energyKj100G: Int? = 0
|
||||
var energyServing: Int? = 0
|
||||
var energyKcalServing: Double? = 0.0
|
||||
var energyKjServing: Int? = 0
|
||||
var energyUnit: String? = nil
|
||||
var energyKcalUnit: String? = nil
|
||||
var energyKjUnit: String? = nil
|
||||
|
||||
var fat: Float? = 0.0
|
||||
var fatValue: Float? = 0.0
|
||||
var fat100G: Float? = 0.0
|
||||
var fatServing: Float? = 0.0
|
||||
var fatUnit: String? = nil
|
||||
|
||||
var fiber: Float? = 0.0
|
||||
var fiberValue: Float? = 0.0
|
||||
var fiber100G: Float? = 0.0
|
||||
var fiberServing: Float? = 0.0
|
||||
var fiberUnit: String? = nil
|
||||
|
||||
var fruitsVegetablesNutsEstimateFromIngredients100G: Float? = 0.0
|
||||
|
||||
var iron: Float? = 0.0
|
||||
var ironValue: Float? = 0.0
|
||||
var iron100G: Float? = 0.0
|
||||
var ironServing: Float? = 0.0
|
||||
var ironUnit: String? = nil
|
||||
|
||||
var novaGroup: Float? = 0.0
|
||||
var novaGroup100G: Float? = 0.0
|
||||
var novaGroupServing: Float? = 0.0
|
||||
|
||||
var proteins: Float? = 0.0
|
||||
var proteinsValue: Float? = 0.0
|
||||
var proteins100G: Float? = 0.0
|
||||
var proteinsServing: Float? = 0.0
|
||||
var proteinsUnit: String? = nil
|
||||
|
||||
var salt: Float? = 0.0
|
||||
var saltValue: Float? = 0.0
|
||||
var salt100G: Float? = 0.0
|
||||
var saltServing: Float? = 0.0
|
||||
var saltUnit: String? = nil
|
||||
|
||||
var saturatedFat: Float? = 0.0
|
||||
var saturatedFatValue: Float? = 0.0
|
||||
var saturatedFat100G: Float? = 0.0
|
||||
var saturatedFatServing: Float? = 0.0
|
||||
var saturatedFatUnit: String? = nil
|
||||
|
||||
var sodium: Float? = 0.0
|
||||
var sodiumValue: Float? = 0.0
|
||||
var sodium100G: Float? = 0.0
|
||||
var sodiumServing: Float? = 0.0
|
||||
var sodiumUnit: String? = nil
|
||||
|
||||
var sugars: Float? = 0.0
|
||||
var sugarsValue: Float? = 0.0
|
||||
var sugars100G: Float? = 0.0
|
||||
var sugarsServing: Float? = 0.0
|
||||
var sugarsUnit: String? = nil
|
||||
|
||||
var transFat: Float? = 0.0
|
||||
var transFatValue: Float? = 0.0
|
||||
var transFat100G: Float? = 0.0
|
||||
var transFatServing: Float? = 0.0
|
||||
var transFatUnit: String? = nil
|
||||
|
||||
var vitaminA: Float? = 0.0
|
||||
var vitaminAValue: Float? = 0.0
|
||||
var vitaminA100G: Float? = 0.0
|
||||
var vitaminAServing: Float? = 0.0
|
||||
var vitaminAUnit: String? = nil
|
||||
|
||||
var vitaminC: Float? = 0.0
|
||||
var vitaminCValue: Float? = 0.0
|
||||
var vitaminC100G: Float? = 0.0
|
||||
var vitaminCServing: Float? = 0.0
|
||||
var vitaminCUnit: String? = nil
|
||||
|
||||
var vitaminD: Float? = 0.0
|
||||
var vitaminDValue: Float? = 0.0
|
||||
var vitaminD100G: Float? = 0.0
|
||||
var vitaminDServing: Float? = 0.0
|
||||
var vitaminDUnit: String? = nil
|
||||
|
||||
// var other: [String: Any] = [:]
|
||||
//
|
||||
// mutating func setDetail(key: String, value: Any) {
|
||||
// other[key] = value
|
||||
// }
|
||||
|
||||
private enum CodingKeys: String, CodingKey {
|
||||
case calcium
|
||||
case calciumValue = "calcium_value"
|
||||
case calcium100G = "calcium_100g"
|
||||
case calciumServing = "calcium_serving"
|
||||
case calciumUnit = "calcium_unit"
|
||||
|
||||
case carbohydrates
|
||||
case carbohydratesValue = "carbohydrates_value"
|
||||
case carbohydrates100G = "carbohydrates_100g"
|
||||
case carbohydratesServing = "carbohydrates_serving"
|
||||
case carbohydratesUnit = "carbohydrates_unit"
|
||||
|
||||
case carbonFootprintFromKnownIngredientsProduct = "carbon-footprint-from-known-ingredients_product"
|
||||
case carbonFootprintFromKnownIngredients100G = "carbon-footprint-from-known-ingredients_100g"
|
||||
case carbonFootprintFromKnownIngredientsServing = "carbon-footprint-from-known-ingredients_serving"
|
||||
|
||||
case cholesterol
|
||||
case cholesterolValue = "cholesterol_value"
|
||||
case cholesterol100G = "cholesterol_100g"
|
||||
case cholesterolServing = "cholesterol_serving"
|
||||
case cholesterolUnit = "cholesterol_unit"
|
||||
|
||||
case energy
|
||||
case energyKcal = "energy-kcal"
|
||||
case energyKj = "energy-kj"
|
||||
case energyValue = "energy_value"
|
||||
case energyKcalValue = "energy-kcal_value"
|
||||
case energyKjValue = "energy-kj_value"
|
||||
case energy100G = "energy_100g"
|
||||
case energyKcal100G = "energy-kcal_100g"
|
||||
case energyKj100G = "energy-kj_100g"
|
||||
case energyServing = "energy_serving"
|
||||
case energyKcalServing = "energy-kcal_serving"
|
||||
case energyKjServing = "energy-kj_serving"
|
||||
case energyUnit = "energy_unit"
|
||||
case energyKcalUnit = "energy-kcal_unit"
|
||||
case energyKjUnit = "energy-kj_unit"
|
||||
|
||||
case fat
|
||||
case fatValue = "fat_value"
|
||||
case fat100G = "fat_100g"
|
||||
case fatServing = "fat_serving"
|
||||
case fatUnit = "fat_unit"
|
||||
|
||||
case fiber
|
||||
case fiberValue = "fiber_value"
|
||||
case fiber100G = "fiber_100g"
|
||||
case fiberServing = "fiber_serving"
|
||||
case fiberUnit = "fiber_unit"
|
||||
|
||||
case fruitsVegetablesNutsEstimateFromIngredients100G = "fruits-vegetables-nuts-estimate-from-ingredients_100g"
|
||||
|
||||
case iron
|
||||
case ironValue = "iron_value"
|
||||
case iron100G = "iron_100g"
|
||||
case ironServing = "iron_serving"
|
||||
case ironUnit = "iron_unit"
|
||||
|
||||
case novaGroup
|
||||
case novaGroup100G = "nova-group_100g"
|
||||
case novaGroupServing = "nova-group_serving"
|
||||
|
||||
case proteins
|
||||
case proteinsValue = "proteins_value"
|
||||
case proteins100G = "proteins_100g"
|
||||
case proteinsServing = "proteins_serving"
|
||||
case proteinsUnit = "proteins_unit"
|
||||
|
||||
case salt
|
||||
case saltValue = "salt_value"
|
||||
case salt100G = "salt_100g"
|
||||
case saltServing = "salt_serving"
|
||||
case saltUnit = "salt_unit"
|
||||
|
||||
case saturatedFat = "saturated-fat"
|
||||
case saturatedFatValue = "saturated-fat_value"
|
||||
case saturatedFat100G = "saturated-fat_100g"
|
||||
case saturatedFatServing = "saturated-fat_serving"
|
||||
case saturatedFatUnit = "saturated-fat_unit"
|
||||
|
||||
case sodium
|
||||
case sodiumValue = "sodium_value"
|
||||
case sodium100G = "sodium_100g"
|
||||
case sodiumServing = "sodium_serving"
|
||||
case sodiumUnit = "sodium_unit"
|
||||
|
||||
case sugars
|
||||
case sugarsValue = "sugars_value"
|
||||
case sugars100G = "sugars_100g"
|
||||
case sugarsServing = "sugars_serving"
|
||||
case sugarsUnit = "sugars_unit"
|
||||
|
||||
case transFat = "trans-fat"
|
||||
case transFatValue = "trans-fat_value"
|
||||
case transFat100G = "trans-fat_100g"
|
||||
case transFatServing = "trans-fat_serving"
|
||||
case transFatUnit = "trans-fat_unit"
|
||||
|
||||
case vitaminA = "vitamin-a"
|
||||
case vitaminAValue = "vitamin-a_value"
|
||||
case vitaminA100G = "vitamin-a_100g"
|
||||
case vitaminAServing = "vitamin-a_serving"
|
||||
case vitaminAUnit = "vitamin-a_unit"
|
||||
|
||||
case vitaminC = "vitamin-c"
|
||||
case vitaminCValue = "vitamin-c_value"
|
||||
case vitaminC100G = "vitamin-c_100g"
|
||||
case vitaminCServing = "vitamin-c_serving"
|
||||
case vitaminCUnit = "vitamin-c_unit"
|
||||
|
||||
case vitaminD = "vitamin-d"
|
||||
case vitaminDValue = "vitamin-d_value"
|
||||
case vitaminD100G = "vitamin-d_100g"
|
||||
case vitaminDServing = "vitamin-d_serving"
|
||||
case vitaminDUnit = "vitamin-d_unit"
|
||||
|
||||
// case other
|
||||
}
|
||||
}
|
||||
400
Sources/OpenFoodFacts/types/Product.swift
Normal file
400
Sources/OpenFoodFacts/types/Product.swift
Normal file
@@ -0,0 +1,400 @@
|
||||
public class Product: Codable {
|
||||
// var images: Images? = Images()
|
||||
var ingredients: [Ingredient]? = []
|
||||
var languagesCodes: LanguagesCodes?
|
||||
var nutrientLevels: NutrientLevels?
|
||||
var nutriments: Nutriments? = Nutriments()
|
||||
var selectedImages: SelectedImages?
|
||||
var sources: [Source]? = []
|
||||
var additivesN: Int?
|
||||
var additivesOldN: Int?
|
||||
var additivesOriginalTags: [String]?
|
||||
var additivesOldTags: [String]?
|
||||
var additivesPrevOriginalTags: [String]?
|
||||
var additivesDebugTags: [String]?
|
||||
var additivesTags: [String]?
|
||||
var allergens: String?
|
||||
var allergensFromIngredients: String?
|
||||
var allergensFromUser: String?
|
||||
var allergensHierarchy: [String]?
|
||||
var allergensLc: String?
|
||||
var allergensTags: [String]?
|
||||
var aminoAcidsPrevTags: [String]?
|
||||
var aminoAcidsTags: [String]?
|
||||
var brands: String?
|
||||
var brandsDebugTags: [String]?
|
||||
var brandsTags: [String]?
|
||||
var carbonFootprintPercentOfKnownIngredients: String?
|
||||
var carbonFootprintFromKnownIngredientsDebug: String?
|
||||
var categories: String?
|
||||
var categoriesHierarchy: [String]?
|
||||
var categoriesLc: String?
|
||||
var categoriesPropertiesTags: [String]?
|
||||
var categoriesTags: [String]?
|
||||
var checkersTags: [String]?
|
||||
var citiesTags: [String]?
|
||||
var code: String?
|
||||
var codesTags: [String]?
|
||||
var comparedToCategory: String?
|
||||
var complete: Int?
|
||||
var completedT: Int?
|
||||
var completeness: Double?
|
||||
var conservationConditions: String?
|
||||
var countries: String?
|
||||
var countriesHierarchy: [String]?
|
||||
var countriesLc: String?
|
||||
var countriesDebugTags: [String]?
|
||||
var countriesTags: [String]?
|
||||
var correctorsTags: [String]?
|
||||
var createdT: Int?
|
||||
var creator: String?
|
||||
var dataQualityBugsTags: [String]?
|
||||
var dataQualityErrorsTags: [String]?
|
||||
var dataQualityInfoTags: [String]?
|
||||
var dataQualityTags: [String]?
|
||||
var dataQualityWarningsTags: [String]?
|
||||
var dataSources: String?
|
||||
var dataSourcesTags: [String]?
|
||||
var debugParamSortedLangs: [String]?
|
||||
var editorsTags: [String]?
|
||||
var embCodes: String?
|
||||
var embCodesDebugTags: [String]?
|
||||
var embCodesOrig: String?
|
||||
var embCodesTags: [String]?
|
||||
var entryDatesTags: [String]?
|
||||
var expirationDate: String?
|
||||
var expirationDateDebugTags: [String]?
|
||||
var fruitsVegetablesNuts100GEstimate: Int?
|
||||
var genericName: String?
|
||||
var id: String?
|
||||
var _id: String?
|
||||
var imageFrontSmallUrl: String?
|
||||
var imageFrontThumbUrl: String?
|
||||
var imageFrontUrl: String?
|
||||
var imageIngredientsUrl: String?
|
||||
var imageIngredientsSmallUrl: String?
|
||||
var imageIngredientsThumbUrl: String?
|
||||
var imageNutritionSmallUrl: String?
|
||||
var imageNutritionThumbUrl: String?
|
||||
var imageNutritionUrl: String?
|
||||
var imageSmallUrl: String?
|
||||
var imageThumbUrl: String?
|
||||
var imageUrl: String?
|
||||
var informersTags: [String]?
|
||||
var ingredientsAnalysisTags: [String]?
|
||||
var ingredientsDebug: [String?]?
|
||||
var ingredientsFromOrThatMayBeFromPalmOilN: Int?
|
||||
var ingredientsFromPalmOilTags: [String]?
|
||||
var ingredientsFromPalmOilN: Int?
|
||||
var ingredientsHierarchy: [String]?
|
||||
var ingredientsIdsDebug: [String]?
|
||||
var ingredientsN: Int?
|
||||
var ingredientsNTags: [String]?
|
||||
var ingredientsOriginalTags: [String]?
|
||||
var ingredientsTags: [String]?
|
||||
var ingredientsText: String?
|
||||
var ingredientsTextDebug: String?
|
||||
var ingredientsTextWithAllergens: String?
|
||||
var ingredientsThatMayBeFromPalmOilN: Int?
|
||||
var ingredientsThatMayBeFromPalmOilTags: [String]?
|
||||
var interfaceVersionCreated: String?
|
||||
var interfaceVersionModified: String?
|
||||
var keywords: [String]?
|
||||
var knownIngredientsN: Int?
|
||||
var labels: String?
|
||||
var labelsHierarchy: [String]?
|
||||
var labelsLc: String?
|
||||
var labelsPrevHierarchy: [String]?
|
||||
var labelsPrevTags: [String]?
|
||||
var labelsTags: [String]?
|
||||
var labelsDebugTags: [String]?
|
||||
var lang: String?
|
||||
var langDebugTags: [String]?
|
||||
var languagesHierarchy: [String]?
|
||||
var languagesTags: [String]?
|
||||
var lastEditDatesTags: [String]?
|
||||
var lastEditor: String?
|
||||
var lastImageDatesTags: [String]?
|
||||
var lastImageT: Int?
|
||||
var lastModifiedBy: String?
|
||||
var lastModifiedT: Int?
|
||||
var lc: String?
|
||||
var link: String?
|
||||
var linkDebugTags: [String]?
|
||||
var manufacturingPlaces: String?
|
||||
var manufacturingPlacesDebugTags: [String]?
|
||||
var manufacturingPlacesTags: [String]?
|
||||
var maxImgid: String?
|
||||
var mineralsPrevTags: [String]?
|
||||
var mineralsTags: [String]?
|
||||
var miscTags: [String]?
|
||||
var netWeightUnit: String?
|
||||
var netWeightValue: String?
|
||||
var nutritionDataPer: String?
|
||||
var nutritionScoreWarningNoFruitsVegetablesNuts: Int?
|
||||
var noNutritionData: String?
|
||||
var novaGroup: String?
|
||||
var novaGroups: String?
|
||||
var novaGroupDebug: String?
|
||||
var novaGroupTags: [String]?
|
||||
var novaGroupsTags: [String]?
|
||||
var nucleotidesPrevTags: [String]?
|
||||
var nucleotidesTags: [String]?
|
||||
var nutrientLevelsTags: [String]?
|
||||
var nutritionData: String?
|
||||
var nutritionDataPerDebugTags: [String]?
|
||||
var nutritionDataPrepared: String?
|
||||
var nutritionDataPreparedPer: String?
|
||||
var nutritionGrades: String?
|
||||
var nutritionScoreBeverage: Int?
|
||||
var nutritionScoreDebug: String?
|
||||
var nutritionScoreWarningNoFiber: Int?
|
||||
var nutritionGradesTags: [String]?
|
||||
var origins: String?
|
||||
var originsDebugTags: [String]?
|
||||
var originsTags: [String]?
|
||||
var otherInformation: String?
|
||||
var otherNutritionalSubstancesTags: [String]?
|
||||
var packaging: String?
|
||||
var packagingDebugTags: [String]?
|
||||
var packagingTags: [String]?
|
||||
var photographersTags: [String]?
|
||||
var pnnsGroups1: String?
|
||||
var pnnsGroups2: String?
|
||||
var pnnsGroups1Tags: [String]?
|
||||
var pnnsGroups2Tags: [String]?
|
||||
var popularityKey: Int?
|
||||
var producerVersionId: String?
|
||||
var productName: String?
|
||||
var productQuantity: String?
|
||||
var purchasePlaces: String?
|
||||
var purchasePlacesDebugTags: [String]?
|
||||
var purchasePlacesTags: [String]?
|
||||
var qualityTags: [String]?
|
||||
var quantity: String?
|
||||
var quantityDebugTags: [String]?
|
||||
var recyclingInstructionsToDiscard: String?
|
||||
var rev: Int?
|
||||
var servingQuantity: String?
|
||||
var servingSize: String?
|
||||
var servingSizeDebugTags: [String]?
|
||||
var sortkey: Int?
|
||||
var states: String?
|
||||
var statesHierarchy: [String]?
|
||||
var statesTags: [String]?
|
||||
var stores: String?
|
||||
var storesDebugTags: [String]?
|
||||
var storesTags: [String]?
|
||||
var traces: String?
|
||||
var tracesFromIngredients: String?
|
||||
var tracesHierarchy: [String]?
|
||||
var tracesDebugTags: [String]?
|
||||
var tracesFromUser: String?
|
||||
var tracesLc: String?
|
||||
var tracesTags: [String]?
|
||||
var unknownIngredientsN: Int?
|
||||
var unknownNutrientsTags: [String]?
|
||||
var updateKey: String?
|
||||
var vitaminsPrevTags: [String]?
|
||||
var vitaminsTags: [String]?
|
||||
}
|
||||
|
||||
private enum CodingKeys: String, CodingKey {
|
||||
case images
|
||||
case ingredients
|
||||
case languagesCodes = "languages_codes"
|
||||
case nutrientLevels = "nutrient_levels"
|
||||
case nutriments
|
||||
case selectedImages = "selected_images"
|
||||
case sources
|
||||
case additivesN = "additives_n"
|
||||
case additivesOldN = "additives_old_n"
|
||||
case additivesOriginalTags = "additives_original_tags"
|
||||
case additivesOldTags = "additives_old_tags"
|
||||
case additivesPrevOriginalTags = "additives_prev_original_tags"
|
||||
case additivesDebugTags = "additives_debug_tags"
|
||||
case additivesTags = "additives_tags"
|
||||
case allergens
|
||||
case allergensFromIngredients = "allergens_from_ingredients"
|
||||
case allergensFromUser = "allergens_from_user"
|
||||
case allergensHierarchy = "allergens_hierarchy"
|
||||
case allergensLc = "allergens_lc"
|
||||
case allergensTags = "allergens_tags"
|
||||
case aminoAcidsPrevTags = "amino_acids_prev_tags"
|
||||
case aminoAcidsTags = "amino_acids_tags"
|
||||
case brands
|
||||
case brandsDebugTags = "brands_debug_tags"
|
||||
case brandsTags = "brands_tags"
|
||||
case carbonFootprintPercentOfKnownIngredients = "carbon_footprint_percent_of_known_ingredients"
|
||||
case carbonFootprintFromKnownIngredientsDebug = "carbon_footprint_from_known_ingredients_debug"
|
||||
case categories
|
||||
case categoriesHierarchy = "categories_hierarchy"
|
||||
case categoriesLc = "categories_lc"
|
||||
case categoriesPropertiesTags = "categories_properties_tags"
|
||||
case categoriesTags = "categories_tags"
|
||||
case checkersTags = "checkers_tags"
|
||||
case citiesTags = "cities_tags"
|
||||
case code
|
||||
case codesTags = "codes_tags"
|
||||
case comparedToCategory = "compared_to_category"
|
||||
case complete
|
||||
case completedT = "completed_t"
|
||||
case completeness
|
||||
case conservationConditions = "conservation_conditions"
|
||||
case countries
|
||||
case countriesHierarchy = "countries_hierarchy"
|
||||
case countriesLc = "countries_lc"
|
||||
case countriesDebugTags = "countries_debug_tags"
|
||||
case countriesTags = "countries_tags"
|
||||
case correctorsTags = "correctors_tags"
|
||||
case createdT = "created_t"
|
||||
case creator
|
||||
case dataQualityBugsTags = "data_quality_bugs_tags"
|
||||
case dataQualityErrorsTags = "data_quality_errors_tags"
|
||||
case dataQualityInfoTags = "data_quality_info_tags"
|
||||
case dataQualityTags = "data_quality_tags"
|
||||
case dataQualityWarningsTags = "data_quality_warnings_tags"
|
||||
case dataSources = "data_sources"
|
||||
case dataSourcesTags = "data_sources_tags"
|
||||
case debugParamSortedLangs = "debug_param_sorted_langs"
|
||||
case editorsTags = "editors_tags"
|
||||
case embCodes = "emb_codes"
|
||||
case embCodesDebugTags = "emb_codes_debug_tags"
|
||||
case embCodesOrig = "emb_codes_orig"
|
||||
case embCodesTags = "emb_codes_tags"
|
||||
case entryDatesTags = "entry_dates_tags"
|
||||
case expirationDate = "expiration_date"
|
||||
case expirationDateDebugTags = "expiration_date_debug_tags"
|
||||
case fruitsVegetablesNuts100GEstimate = "fruits-vegetables-nuts_100g_estimate"
|
||||
case genericName
|
||||
case id
|
||||
case imageFrontSmallUrl = "image_front_small_url"
|
||||
case imageFrontThumbUrl = "image_front_thumb_url"
|
||||
case imageFrontUrl = "image_front_url"
|
||||
case imageIngredientsUrl = "image_ingredients_url"
|
||||
case imageIngredientsSmallUrl = "image_ingredients_small_url"
|
||||
case imageIngredientsThumbUrl = "image_ingredients_thumb_url"
|
||||
case imageNutritionSmallUrl = "image_nutrition_small_url"
|
||||
case imageNutritionThumbUrl = "image_nutrition_thumb_url"
|
||||
case imageNutritionUrl = "image_nutrition_url"
|
||||
case imageSmallUrl = "image_small_url"
|
||||
case imageThumbUrl = "image_thumb_url"
|
||||
case imageUrl = "image_url"
|
||||
case informersTags = "informers_tags"
|
||||
case ingredientsAnalysisTags = "ingredients_analysis_tags"
|
||||
case ingredientsDebug = "ingredients_debug"
|
||||
case ingredientsFromOrThatMayBeFromPalmOilN = "ingredients_from_or_that_may_be_from_palm_oil_n"
|
||||
case ingredientsFromPalmOilTags = "ingredients_from_palm_oil_tags"
|
||||
case ingredientsFromPalmOilN = "ingredients_from_palm_oil_n"
|
||||
case ingredientsHierarchy = "ingredients_hierarchy"
|
||||
case ingredientsIdsDebug = "ingredients_ids_debug"
|
||||
case ingredientsN = "ingredients_n"
|
||||
case ingredientsNTags = "ingredients_n_tags"
|
||||
case ingredientsOriginalTags = "ingredients_original_tags"
|
||||
case ingredientsTags = "ingredients_tags"
|
||||
case ingredientsText = "ingredients_text"
|
||||
case ingredientsTextDebug = "ingredients_text_debug"
|
||||
case ingredientsTextWithAllergens = "ingredients_text_with_allergens"
|
||||
case ingredientsThatMayBeFromPalmOilN = "ingredients_that_may_be_from_palm_oil_n"
|
||||
case ingredientsThatMayBeFromPalmOilTags = "ingredients_that_may_be_from_palm_oil_tags"
|
||||
case interfaceVersionCreated = "interface_version_created"
|
||||
case interfaceVersionModified = "interface_version_modified"
|
||||
case keywords
|
||||
case knownIngredientsN = "known_ingredients_n"
|
||||
case labels
|
||||
case labelsHierarchy = "labels_hierarchy"
|
||||
case labelsLc = "labels_lc"
|
||||
case labelsPrevHierarchy = "labels_prev_hierarchy"
|
||||
case labelsPrevTags = "labels_prev_tags"
|
||||
case labelsTags = "labels_tags"
|
||||
case labelsDebugTags = "labels_debug_tags"
|
||||
case lang
|
||||
case langDebugTags = "lang_debug_tags"
|
||||
case languagesHierarchy = "languages_hierarchy"
|
||||
case languagesTags = "languages_tags"
|
||||
case lastEditDatesTags = "last_edit_dates_tags"
|
||||
case lastEditor = "last_editor"
|
||||
case lastImageDatesTags = "last_image_dates_tags"
|
||||
case lastImageT = "last_image_t"
|
||||
case lastModifiedBy = "last_modified_by"
|
||||
case lastModifiedT = "last_modified_t"
|
||||
case lc
|
||||
case link
|
||||
case linkDebugTags = "link_debug_tags"
|
||||
case manufacturingPlaces = "manufacturing_places"
|
||||
case manufacturingPlacesDebugTags = "manufacturing_places_debug_tags"
|
||||
case manufacturingPlacesTags = "manufacturing_places_tags"
|
||||
case maxImgid = "max_imgid"
|
||||
case mineralsPrevTags = "minerals_prev_tags"
|
||||
case mineralsTags = "minerals_tags"
|
||||
case miscTags = "misc_tags"
|
||||
case netWeightUnit = "net_weight_unit"
|
||||
case netWeightValue = "net_weight_value"
|
||||
case nutritionDataPer = "nutrition_data_per"
|
||||
case nutritionScoreWarningNoFruitsVegetablesNuts = "nutrition_score_warning_no_fruits_vegetables_nuts"
|
||||
case noNutritionData = "no_nutrition_data"
|
||||
case novaGroup = "nova_group"
|
||||
case novaGroups = "nova_groups"
|
||||
case novaGroupDebug = "nova_group_debug"
|
||||
case novaGroupTags = "nova_group_tags"
|
||||
case novaGroupsTags = "nova_groups_tags"
|
||||
case nucleotidesPrevTags = "nucleotides_prev_tags"
|
||||
case nucleotidesTags = "nucleotides_tags"
|
||||
case nutrientLevelsTags = "nutrient_levels_tags"
|
||||
case nutritionData = "nutrition_data"
|
||||
case nutritionDataPerDebugTags = "nutrition_data_per_debug_tags"
|
||||
case nutritionDataPrepared = "nutrition_data_prepared"
|
||||
case nutritionDataPreparedPer = "nutrition_data_prepared_per"
|
||||
case nutritionGrades = "nutrition_grades"
|
||||
case nutritionScoreBeverage = "nutrition_score_beverage"
|
||||
case nutritionScoreDebug = "nutrition_score_debug"
|
||||
case nutritionScoreWarningNoFiber = "nutrition_score_warning_no_fiber"
|
||||
case nutritionGradesTags = "nutrition_grades_tags"
|
||||
case origins
|
||||
case originsDebugTags = "origins_debug_tags"
|
||||
case originsTags = "origins_tags"
|
||||
case otherInformation = "other_information"
|
||||
case otherNutritionalSubstancesTags = "other_nutritional_substances_tags"
|
||||
case packaging
|
||||
case packagingDebugTags = "packaging_debug_tags"
|
||||
case packagingTags = "packaging_tags"
|
||||
case photographersTags = "photographers_tags"
|
||||
case pnnsGroups1 = "pnns_groups_1"
|
||||
case pnnsGroups2 = "pnns_groups_2"
|
||||
case pnnsGroups1Tags = "pnns_groups_1_tags"
|
||||
case pnnsGroups2Tags = "pnns_groups_2_tags"
|
||||
case popularityKey = "popularity_key"
|
||||
case producerVersionId = "producer_version_id"
|
||||
case productName = "product_name"
|
||||
case productQuantity = "product_quantity"
|
||||
case purchasePlaces = "purchase_places"
|
||||
case purchasePlacesDebugTags = "purchase_places_debug_tags"
|
||||
case purchasePlacesTags = "purchase_places_tags"
|
||||
case qualityTags = "quality_tags"
|
||||
case quantity
|
||||
case quantityDebugTags = "quantity_debug_tags"
|
||||
case recyclingInstructionsToDiscard = "recycling_instructions_to_discard"
|
||||
case rev
|
||||
case servingQuantity = "serving_quantity"
|
||||
case servingSize = "serving_size"
|
||||
case servingSizeDebugTags = "serving_size_debug_tags"
|
||||
case sortkey
|
||||
case states
|
||||
case statesHierarchy = "states_hierarchy"
|
||||
case statesTags = "states_tags"
|
||||
case stores
|
||||
case storesDebugTags = "stores_debug_tags"
|
||||
case storesTags = "stores_tags"
|
||||
case traces
|
||||
case tracesFromIngredients = "traces_from_ingredients"
|
||||
case tracesHierarchy = "traces_hierarchy"
|
||||
case tracesDebugTags = "traces_debug_tags"
|
||||
case tracesFromUser = "traces_from_user"
|
||||
case tracesLc = "traces_lc"
|
||||
case tracesTags = "traces_tags"
|
||||
case unknownIngredientsN = "unknown_ingredients_n"
|
||||
case unknownNutrientsTags = "unknown_nutrients_tags"
|
||||
case updateKey = "update_key"
|
||||
case vitaminsPrevTags = "vitamins_prev_tags"
|
||||
case vitaminsTags = "vitamins_tags"
|
||||
}
|
||||
14
Sources/OpenFoodFacts/types/ProductResponse.swift
Normal file
14
Sources/OpenFoodFacts/types/ProductResponse.swift
Normal file
@@ -0,0 +1,14 @@
|
||||
|
||||
public struct ProductResponse: Codable {
|
||||
var product: Product?
|
||||
var code: String?
|
||||
var status: Int? // or Bool, depending on your needs
|
||||
var statusVerbose: String?
|
||||
|
||||
private enum CodingKeys: String, CodingKey {
|
||||
case product
|
||||
case code
|
||||
case status
|
||||
case statusVerbose = "status_verbose"
|
||||
}
|
||||
}
|
||||
5
Sources/OpenFoodFacts/types/SelectedImage.swift
Normal file
5
Sources/OpenFoodFacts/types/SelectedImage.swift
Normal file
@@ -0,0 +1,5 @@
|
||||
public class SelectedImage: Codable {
|
||||
var display: SelectedImageItem?
|
||||
var small: SelectedImageItem?
|
||||
var thumb: SelectedImageItem?
|
||||
}
|
||||
9
Sources/OpenFoodFacts/types/SelectedImageItem.swift
Normal file
9
Sources/OpenFoodFacts/types/SelectedImageItem.swift
Normal file
@@ -0,0 +1,9 @@
|
||||
public struct SelectedImageItem: Codable {
|
||||
let en: String?
|
||||
let fr: String?
|
||||
let pl: String?
|
||||
|
||||
var url: String {
|
||||
[en, fr, pl].compactMap { $0 }.first ?? ""
|
||||
}
|
||||
}
|
||||
5
Sources/OpenFoodFacts/types/SelectedImages.swift
Normal file
5
Sources/OpenFoodFacts/types/SelectedImages.swift
Normal file
@@ -0,0 +1,5 @@
|
||||
public struct SelectedImages: Codable {
|
||||
let front: SelectedImage?
|
||||
let ingredients: SelectedImage?
|
||||
let nutrition: SelectedImage?
|
||||
}
|
||||
19
Sources/OpenFoodFacts/types/Source.swift
Normal file
19
Sources/OpenFoodFacts/types/Source.swift
Normal file
@@ -0,0 +1,19 @@
|
||||
public struct Source: Codable {
|
||||
let fields: [String] = []
|
||||
let id: String? = nil
|
||||
let images: [String] = []
|
||||
let importT: Int = 0
|
||||
let manufacturer: String? = nil
|
||||
let name: String? = nil
|
||||
let url: String? = nil
|
||||
|
||||
private enum CodingKeys: String, CodingKey {
|
||||
case fields
|
||||
case id
|
||||
case images
|
||||
case importT = "import_t"
|
||||
case manufacturer
|
||||
case name
|
||||
case url
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user