import request from 'app/services/request'; export interface UserResponse { elyProfileLink: string; email: string; hasMojangUsernameCollision: boolean; id: number; isActive: boolean; isOtpEnabled: boolean; lang: string; passwordChangedAt: number; // timestamp registeredAt: number; // timestamp shouldAcceptRules: boolean; username: string; uuid: string; } export function getInfo(id: number, token?: string): Promise { return request.get( `/api/v1/accounts/${id}`, {}, { token, }, ); } export function changePassword( id: number, { password = '', newPassword = '', newRePassword = '', logoutAll = true, }: { password?: string; newPassword?: string; newRePassword?: string; logoutAll?: boolean; }, ): Promise<{ success: boolean }> { return request.post(`/api/v1/accounts/${id}/password`, { password, newPassword, newRePassword, logoutAll, }); } export function acceptRules(id: number): Promise<{ success: boolean }> { return request.post(`/api/v1/accounts/${id}/rules`); } export function changeUsername( id: number, username: string | void, password: string | void, ): Promise<{ success: boolean }> { return request.post(`/api/v1/accounts/${id}/username`, { username, password, }); } export function changeLang( id: number, lang: string, ): Promise<{ success: boolean }> { return request.post(`/api/v1/accounts/${id}/language`, { lang, }); } export function requestEmailChange( id: number, password: string, ): Promise<{ success: boolean }> { return request.post(`/api/v1/accounts/${id}/email-verification`, { password, }); } export function setNewEmail( id: number, email: string, key: string, ): Promise<{ success: boolean }> { return request.post(`/api/v1/accounts/${id}/new-email-verification`, { email, key, }); } export function confirmNewEmail( id: number, key: string, ): Promise<{ success: boolean }> { return request.post(`/api/v1/accounts/${id}/email`, { key, }); }