// @flow import request from 'services/request'; export type 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, password: ?string, ): 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, }); }