createPost method
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;
}
}