import 'dart:convert'; import '../models/post_models.dart'; import 'http_service.dart'; class PostService { static Future> getAllPosts() async { try { final response = await HttpService.get('/posts/all'); final responseData = jsonDecode(response.body); if (response.statusCode == 200) { return { 'success': responseData['status'] ?? false, 'message': responseData['message'] ?? '', 'posts': (responseData['data'] as List?) ?.map((post) => Post.fromJson(post)) .toList() ?? [], }; } else { return { 'success': false, 'message': responseData['message'] ?? 'Failed to fetch posts', 'posts': [], }; } } catch (e) { print('Error fetching posts: $e'); return { 'success': false, 'message': 'Network error: $e', 'posts': [], }; } } static Future> createPost(String body) async { try { final createPostRequest = CreatePostRequest(body: body); final response = await HttpService.post( '/posts/create', createPostRequest.toJson(), ); final responseData = jsonDecode(response.body); if (response.statusCode == 200 || response.statusCode == 201) { return { 'success': responseData['status'] ?? false, 'message': responseData['message'] ?? '', 'post': responseData['data'] != null ? Post.fromJson(responseData['data']) : null, }; } else { return { 'success': false, 'message': responseData['message'] ?? 'Failed to create post', 'post': null, }; } } catch (e) { print('Error creating post: $e'); return {'success': false, 'message': 'Network error: $e', 'post': null}; } } }