forked from eatvio/eatvio_app
44 lines
1.7 KiB
Dart
44 lines
1.7 KiB
Dart
import 'package:dio/dio.dart';
|
|
import 'package:eatvio_app/features/insights/models/insights_response_model.dart';
|
|
import 'package:retrofit/retrofit.dart';
|
|
|
|
part 'insights_service.g.dart';
|
|
|
|
/// Эндпоинты инсайтов (eatvio/eatvio#3017). Сервер приводит будущую
|
|
/// `intra_date` к сегодняшней, неверные значения периода дают 422, чужой
|
|
/// недоступный профиль — 403.
|
|
@RestApi()
|
|
abstract class InsightsService {
|
|
factory InsightsService(Dio dio, {String baseUrl}) = _InsightsService;
|
|
|
|
/// Свои графики целиком.
|
|
@GET('/api/profile/insights')
|
|
Future<InsightsResponseModel> getInsights({
|
|
@Query('body_period') String? bodyPeriod,
|
|
@Query('daily_period') String? dailyPeriod,
|
|
@Query('intra_date') String? intraDate,
|
|
});
|
|
|
|
/// Чужие графики целиком (клиент консультанта; остальным 403).
|
|
@GET('/api/profile/insights/{slug}')
|
|
Future<InsightsResponseModel> getInsightsBySlug({
|
|
@Path() required String slug,
|
|
@Query('body_period') String? bodyPeriod,
|
|
@Query('daily_period') String? dailyPeriod,
|
|
@Query('intra_date') String? intraDate,
|
|
});
|
|
|
|
/// Только «в течение дня» для себя.
|
|
@GET('/api/profile/insights/intra')
|
|
Future<InsightsIntraResponseModel> getIntra({
|
|
@Query('intra_date') String? intraDate,
|
|
});
|
|
|
|
/// Только «в течение дня» для другого пользователя.
|
|
@GET('/api/profile/insights/{slug}/intra')
|
|
Future<InsightsIntraResponseModel> getIntraBySlug({
|
|
@Path() required String slug,
|
|
@Query('intra_date') String? intraDate,
|
|
});
|
|
}
|