import 'dart:convert';

import 'package:http/http.dart' as http;

import '../../../api_params.dart';
import '../talk_api.dart';
import 'create_poll_params.dart';

/// Erstellt eine Umfrage; der Server postet die Poll-Nachricht selbst in den
/// Chat, danach genügt ein Chat-Refresh. Nur in Gruppen-Chats erlaubt.
class CreatePoll extends TalkApi {
  CreatePoll({required String token, required CreatePollParams params})
    : super(
        'v1/poll/$token',
        params,
        headers: {'Content-Type': 'application/json'},
      );

  @override
  Null assemble(String raw) => null;

  @override
  Future<http.Response>? request(
    Uri uri,
    ApiParams? body,
    Map<String, String>? headers,
  ) {
    if (body is! CreatePollParams) return null;
    return http.post(uri, headers: headers, body: jsonEncode(body.toJson()));
  }
}
