Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Integrate all routes from nutripatrol's API #991

Open
wants to merge 14 commits into
base: master
Choose a base branch
from
24 changes: 24 additions & 0 deletions example/lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,30 @@ import 'dart:async';

import 'package:openfoodfacts/openfoodfacts.dart';

void main() {
OpenFoodAPIConfiguration.userAgent = UserAgent(
name: 'openfoodfacts-dart',
version: '1.0.0',
url: '',
);
getTickets();
}

/// Get the ticket by its ID
/// The result will be a MaybeError<Ticket> that can be parsed
void getTicket() async {
await NutripatrolApiClient.getTicket(ticketId: 2);
}

/// Get all tickets
/// The result will be a MaybeError<Tickets> that can be parsed
void getTickets() async {
await NutripatrolApiClient.getTickets(
status: NutripatrolTicketStatus.open,
type: NutripatrolType.image,
page: 1);
}

/// request a product from the OpenFoodFacts database
Future<Product?> getProduct() async {
var barcode = '0048151623426';
Expand Down
10 changes: 8 additions & 2 deletions lib/openfoodfacts.dart
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You'll probably need to add the other nutripatrol classes.

Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,12 @@ export 'src/model/taxonomy_packaging_recycling.dart';
export 'src/model/taxonomy_packaging_shape.dart';
export 'src/model/user.dart';
export 'src/model/user_agent.dart';
export 'src/nutripatrol/create_flag.dart';
export 'src/nutripatrol/get_flag.dart';
export 'src/nutripatrol/get_ticket.dart';
export 'src/nutripatrol/get_tickets.dart';
export 'src/nutripatrol/update_ticket_status.dart';
export 'src/nutripatrol_api_client.dart';
export 'src/open_food_api_client.dart';
export 'src/open_food_search_api_client.dart';
export 'src/open_prices_api_client.dart';
Expand All @@ -97,14 +103,14 @@ export 'src/prices/flavor.dart';
export 'src/prices/get_locations_order.dart';
export 'src/prices/get_locations_parameters.dart';
export 'src/prices/get_locations_result.dart';
export 'src/prices/get_price_count_parameters_helper.dart';
// export 'src/prices/get_parameters_helper.dart'; // uncomment if really needed
export 'src/prices/get_prices_order.dart';
export 'src/prices/get_prices_parameters.dart';
export 'src/prices/get_price_products_order.dart';
export 'src/prices/get_price_products_parameters.dart';
export 'src/prices/get_price_products_result.dart';
export 'src/prices/get_prices_result.dart';
export 'src/prices/get_price_count_parameters_helper.dart';
export 'src/prices/get_proofs_order.dart';
export 'src/prices/get_proofs_parameters.dart';
export 'src/prices/get_proofs_result.dart';
Expand All @@ -127,6 +133,7 @@ export 'src/prices/proof_type.dart';
export 'src/prices/session.dart';
export 'src/prices/update_price_parameters.dart';
export 'src/prices/update_proof_parameters.dart';
export 'src/robot_off_api_client.dart';
export 'src/search/autocomplete_search_result.dart';
export 'src/search/autocomplete_single_result.dart';
export 'src/search/fuzziness.dart';
Expand Down Expand Up @@ -158,4 +165,3 @@ export 'src/utils/too_many_requests_manager.dart';
export 'src/utils/unit_helper.dart';
export 'src/utils/uri_helper.dart';
export 'src/utils/uri_reader.dart';
export 'src/robot_off_api_client.dart';
2 changes: 0 additions & 2 deletions lib/src/model/old_product_result.g.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

69 changes: 69 additions & 0 deletions lib/src/nutripatrol/create_flag.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
import 'package:json_annotation/json_annotation.dart';
import 'package:openfoodfacts/src/nutripatrol/get_ticket.dart';

import '../interface/json_object.dart';

part 'create_flag.g.dart';

@JsonSerializable()
class CreateNutripatrolFlag extends JsonObject {
/// Ticket ID associated with the flag
@JsonKey()
late NutripatrolTicket ticket;

/// Barcode of the product.
@JsonKey()
String? barcode;

/// Type of the flag
@JsonKey()
late String type;
Valimp marked this conversation as resolved.
Show resolved Hide resolved

/// Url of the product
@JsonKey()
late String url;

/// User ID
@JsonKey(name: 'user_id')
late String userId;

/// Device ID
@JsonKey(name: 'device_id')
late String deviceId;

/// Source of the flag
@JsonKey()
late String source;
Valimp marked this conversation as resolved.
Show resolved Hide resolved

/// Confidence of the flag
@JsonKey()
double? confidence;

/// Image ID of the flag
@JsonKey(name: 'image_id')
String? imageId;

/// Flavor of the flag
@JsonKey()
late String flavor;
Valimp marked this conversation as resolved.
Show resolved Hide resolved

/// Reason for the flag
@JsonKey()
String? reason;

/// Comment associated with the flag
@JsonKey()
String? comment;

/// Created date of the flag
@JsonKey(name: 'created_at')
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You probably need method to/from json.

late DateTime createdAt;

CreateNutripatrolFlag();

factory CreateNutripatrolFlag.fromJson(Map<String, dynamic> json) =>
_$CreateNutripatrolFlagFromJson(json);

@override
Map<String, dynamic> toJson() => _$CreateNutripatrolFlagToJson(this);
}
43 changes: 43 additions & 0 deletions lib/src/nutripatrol/create_flag.g.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

66 changes: 66 additions & 0 deletions lib/src/nutripatrol/create_flag_request.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
import 'package:json_annotation/json_annotation.dart';
import 'package:openfoodfacts/openfoodfacts.dart';
import 'package:openfoodfacts/src/utils/nutripatrol_source.dart';

import '../interface/json_object.dart';

part 'create_flag_request.g.dart';

@JsonSerializable()
class CreateNutripatrolFlagRequest extends JsonObject {
/// Barcode of the product.
@JsonKey()
String? barcode;

/// Type of the flag
@JsonKey()
late NutripatrolType type;

/// Url of the product
@JsonKey()
late String url;

/// User ID
@JsonKey(name: 'user_id')
late String userId;

/// Device ID
@JsonKey(name: 'device_id')
late String deviceId;

/// Source of the flag
@JsonKey()
late NutripatrolSource source;

/// Confidence of the flag
@JsonKey()
double? confidence;

/// Image ID of the flag
@JsonKey(name: 'image_id')
String? imageId;

/// Flavor of the flag
@JsonKey()
late Flavor flavor;

/// Reason for the flag
@JsonKey()
List<NutripatrolFlagReason>? reason;

/// Comment associated with the flag
@JsonKey()
String? comment;

/// Created date of the flag
@JsonKey(name: 'created_at')
late DateTime createdAt;

CreateNutripatrolFlagRequest();

factory CreateNutripatrolFlagRequest.fromJson(Map<String, dynamic> json) =>
_$CreateNutripatrolFlagRequestFromJson(json);

@override
Map<String, dynamic> toJson() => _$CreateNutripatrolFlagRequestToJson(this);
}
71 changes: 71 additions & 0 deletions lib/src/nutripatrol/create_flag_request.g.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading