import 'dart:typed_data';

import 'package:dio/dio.dart';

import 'server.dart';

Future<Map<String, dynamic>> getMyProfile(String id) async {
  Response response = await request.get(
    '/user_profile/my',
    queryParameters: {'id': id},
  );

  return response.data;
}

Future<Map<String, dynamic>> changeBasic(
  String id,
  String nickname,
  String location,
  String birthday,
  String gender,
) async {
  Response response = await request.post('/user_profile/change/basic', data: {
    'id': id,
    'nickname': nickname,
    'location': location,
    'birthday': birthday,
    'gender': gender,
  });
  return response.data;
}

Future<Map<String, dynamic>> changeSign(
  String id,
  String sign,
) async {
  Response response = await request.post('/user_profile/change/sign', data: {
    'id': id,
    'sign': sign,
  });
  return response.data;
}

Future<Map<String, dynamic>> changeAvatar(String id, Uint8List avatar) async {
  Response response = await request.post(
    '/user_profile/change/avatar',
    data: {'file': avatar},
    queryParameters: {
      'id': id,
    },
  );
  return response.data;
}

Future<Uint8List> downloadUserAvatar(String avatarFilename) async {
  Response response = await request.get(
    '/user_profile/avatar',
    queryParameters: {'avatar_filename': avatarFilename},
    options: Options(responseType: ResponseType.bytes),
  );
  return response.data;
}

Future<Uint8List> downloadAvatars(List<String> avatars) async {
  Response response = await request.get(
    '/user_profile/avatars',
    queryParameters: {'avatar_filename': avatars},
    options: Options(responseType: ResponseType.bytes),
  );
  return response.data;
}