// Copyright (C) 2022 WYATT GROUP
// Please see the AUTHORS file for details.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see .
import 'package:wyatt_cli_toolbox/src/prompt/question.dart';
export 'boolean_question.dart';
export 'framework/framework.dart';
export 'framework/theme.dart';
export 'list_question.dart';
export 'message.dart';
export 'number_question.dart';
export 'password_question.dart';
export 'question.dart';
export 'string_question.dart';
export 'widgets/input.dart';
class Prompt {
Prompt({this.questions});
Map answers = {};
List>? questions;
void add(Question question) {
if (questions != null) {
questions!.add(question);
} else {
questions = >[question];
}
}
void addAll(List> questions) {
if (this.questions != null) {
this.questions!.addAll(questions);
} else {
this.questions = questions;
}
}
Map ask() {
if (questions != null) {
for (final Question question in questions!) {
if (!(question.type == QuestionType.message)) {
answers[question.identifier] = question.ask();
} else {
question.ask();
}
}
} else {
throw Exception('You must add questions before asking for prompt.');
}
return answers;
}
}