createPost method

Future<void> createPost(
  1. String communityId
)

Implementation

Future<void> createPost(String communityId) async {
  final token = Hive.box('user_data').get('user_token');
  if (_titleController.text.isEmpty || _contentController.text.isEmpty) {
    Get.snackbar('Error', 'Title and content are required');
    return;
  }

  try {
    isLoading.value = true;
    final response = await _apiService.post(
      endpoint: CommunityConstants.posts,
      body: {
        'community_id': communityId,
        'title': _titleController.text,
        'content': _contentController.text,
      },
      headers: {
        'api-key': CommunityConstants.apiKey,
        'Authorization': 'Bearer $token',
        'Accept': 'application/json',
      },
    );

    if (response.statusCode == 201) {
      Get.snackbar('Success', 'Post created successfully');
      _titleController.clear();
      _contentController.clear();
      Get.back(result: true);
    } else {
      final data = jsonDecode(response.data);
      Get.snackbar('Error', data['message'] ?? 'Failed to create post');
    }
  } on DioException catch (e) {
    Get.snackbar(
      'Error',
      e.response?.data['message'] ?? 'Something went wrong',
    );
  } catch (e) {
    Get.snackbar('Error', 'Something went wrong');
  } finally {
    isLoading.value = false;
  }
}