Files
social-app/apps/lib/features/settings/data/services/memory_service.dart
T

65 lines
2.0 KiB
Dart

import 'package:social_app/data/network/i_api_client.dart';
import '../models/memory_models.dart';
class MemoryService {
final IApiClient _client;
static const _prefix = '/api/v1/memories';
MemoryService(this._client);
Future<MemoryListResponse> getAllMemories() async {
final response = await _client.get<Map<String, dynamic>>(_prefix);
return MemoryListResponse.fromJson(response.data!);
}
Future<UserMemoryContent?> getUserMemory() async {
final response = await _client.get<Map<String, dynamic>>('$_prefix/user');
if (response.data == null) return null;
return UserMemoryContent.fromJson(response.data);
}
Future<WorkProfileContent?> getWorkMemory() async {
final response = await _client.get<Map<String, dynamic>>('$_prefix/work');
if (response.data == null) return null;
return WorkProfileContent.fromJson(response.data);
}
Future<UserMemoryContent> updateUserMemory(UserMemoryContent content) async {
final response = await _client.put<Map<String, dynamic>>(
'$_prefix/user',
data: {'content': content.toJson()},
);
return UserMemoryContent.fromJson(response.data);
}
Future<WorkProfileContent> updateWorkMemory(
WorkProfileContent content,
) async {
final response = await _client.put<Map<String, dynamic>>(
'$_prefix/work',
data: {'content': content.toJson()},
);
return WorkProfileContent.fromJson(response.data);
}
Future<UserMemoryContent> patchUserMemory(
Map<String, dynamic> content,
) async {
final response = await _client.patch<Map<String, dynamic>>(
'$_prefix/user',
data: {'content': content},
);
return UserMemoryContent.fromJson(response.data);
}
Future<WorkProfileContent> patchWorkMemory(
Map<String, dynamic> content,
) async {
final response = await _client.patch<Map<String, dynamic>>(
'$_prefix/work',
data: {'content': content},
);
return WorkProfileContent.fromJson(response.data);
}
}