import { Client } from "./Client.js"; import { Profile } from "./Profile.js"; class MyProfile extends Profile { /** * @param {Client} client */ constructor (client) { super(client, "../me"); /** * @type {[Profile]} */ this.blockedUsers = []; /** * @type {[Profile]} */ this.friends = []; } async init() { await super.init(); await this.getBlockedUsers(); await this.getFriends(); } async getBlockedUsers() { const response = await this.client._get('/api/profiles/block'); const data = await response.json(); data.forEach(profileData => this.blockedUsers.push(new Profile(this.client, profileData.username, profileData.user_id, profileData.avatar))); } async getFriends() { const response = await this.client._get('/api/profiles/friends'); const data = await response.json(); data.forEach(profileData => this.friends.push(new Profile(this.client, profileData.username, profileData.user_id, profileData.avatar))); } /** * * @param {File} selectedFile * @returns {Promise} */ async changeAvatar(selectedFile) { const formData = new FormData(); formData.append('avatar', selectedFile); const response = await this.client._patch_file(`/api/profiles/settings`, formData); const responseData = await response.json(); if (response.ok) return null; return responseData; } async deleteAvatar() { const response = await this.client._delete('/api/profiles/settings'); const responseData = await response.json(); if (response.ok) return null; return responseData; } } export {MyProfile};