Skip to content

Commit

Permalink
fix: add fitbit question json type to question model
Browse files Browse the repository at this point in the history
  • Loading branch information
ibrahimozkn committed Dec 11, 2024
1 parent ef46183 commit da5b18d
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 3 deletions.
1 change: 1 addition & 0 deletions core/lib/src/models/questionnaire/question.dart
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ abstract class Question<V> {
AudioRecordingQuestion.questionType =>
AudioRecordingQuestion.fromJson(data),
FreeTextQuestion.questionType => FreeTextQuestion.fromJson(data),
FitbitQuestion.questionType => FitbitQuestion.fromJson(data),
_ => throw UnknownJsonTypeError(data[keyType]),
} as Question<V>;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ part 'fitbit_question.g.dart';
class FitbitQuestion extends Question<FitbitQuestion> {
static const String questionType = 'FitbitQuestion';

@JsonKey(name: 'types')
List<FitbitQuestionType> types;

FitbitQuestion({
Expand All @@ -25,7 +26,7 @@ class FitbitQuestion extends Question<FitbitQuestion> {
@override
Map<String, dynamic> toJson() => _$FitbitQuestionToJson(this);

Answer<List<FitbitData>> constructAnswer(List<FitbitData> data) =>
Answer<FitbitQuestionType> constructAnswer(FitbitQuestionType data) =>
Answer.forQuestion(
this,
data,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -637,7 +637,7 @@ class FitbitQuestionFormData extends QuestionFormData {
) {
final data = FitbitQuestionFormData(
questionId: question.id,
questionType: SurveyQuestionType.freeText,
questionType: SurveyQuestionType.fitbit,
questionText: question.prompt ?? '',
questionInfoText: question.rationale ?? '',
types: question.types,
Expand Down Expand Up @@ -670,10 +670,14 @@ class FitbitQuestionFormData extends QuestionFormData {
return data;
}

FitbitQuestionType _buildQuestionValue(String value) {
return FitbitQuestionType.fromJson(value);
}

@override
Answer constructAnswerFor(dynamic responseOption) {
final question = toQuestion() as FitbitQuestion;
final value = responseOption as List<FitbitData>;
final value = _buildQuestionValue(responseOption as String);
return question.constructAnswer(value);
}
}

0 comments on commit da5b18d

Please sign in to comment.