2020-09-11 18:51:08 +00:00
import userChats from './chat'
2020-09-11 17:38:32 +00:00
2019-06-11 15:13:48 +00:00
export let users = [
2020-08-23 21:31:38 +00:00
{ active : true , approval _pending : false , deactivated : false , id : '2' , nickname : 'allis' , local : true , external : false , roles : { admin : true , moderator : false } , tags : [ ] , actor _type : 'Person' } ,
2020-10-23 21:31:38 +00:00
{ active : true , approval _pending : false , deactivated : false , id : '10' , nickname : 'bob' , local : true , external : false , roles : { admin : false , moderator : false } , tags : [ 'mrf_tag:sandbox' ] , actor _type : 'Person' } ,
{ active : true , approval _pending : true , deactivated : false , id : '567' , nickname : 'ded' , local : false , external : true , roles : { admin : false , moderator : false } , tags : [ ] , actor _type : 'Person' } ,
2020-08-23 21:31:38 +00:00
{ active : false , approval _pending : false , deactivated : true , id : 'abc' , nickname : 'john' , local : true , external : false , roles : { admin : false , moderator : false } , tags : [ 'mrf_tag:media-strip' ] , actor _type : 'Person' } ,
2020-10-23 21:31:38 +00:00
{ active : true , approval _pending : true , deactivated : false , id : '100' , nickname : 'sally' , local : true , external : false , roles : { admin : false , moderator : false } , tags : [ ] , actor _type : 'Service' } ,
{ active : true , approval _pending : true , deactivated : false , id : '123' , nickname : 'bot' , local : true , external : false , roles : { admin : false , moderator : false } , tags : [ ] , actor _type : 'Application' }
2019-03-22 20:58:58 +00:00
]
2020-06-06 19:33:08 +00:00
const userProfile = { avatar : 'avatar.jpg' , nickname : 'allis' , id : '2' , tags : [ ] , roles : { admin : true , moderator : false } , local : true , external : false }
2019-10-04 18:06:01 +00:00
2020-05-26 19:38:03 +00:00
const userStatuses = [
2020-06-06 21:37:28 +00:00
{ account : { id : '9n1bySks25olxWrku0' , nickname : 'dolin' } , content : 'pizza makes everything better' , id : '9vJOO3iFPyjNaEhJ5s' , created _at : '2020-05-22T17:34:34.000Z' , visibility : 'public' } ,
{ account : { id : '9n1bySks25olxWrku0' , nickname : 'dolin' } , content : 'pizza time' , id : '9vJPD5XKOdzQ0bvGLY' , created _at : '2020-05-22T17:34:34.000Z' , visibility : 'public' } ,
{ account : { id : '9n1bySks25olxWrku0' , nickname : 'dolin' } , content : 'what is yout favorite pizza?' , id : '9jop82OBXeFPYulVjM' , created _at : '2020-05-22T17:34:34.000Z' , visibility : 'public' }
2020-05-26 19:38:03 +00:00
]
2019-10-04 18:06:01 +00:00
2019-03-29 14:25:53 +00:00
const filterUsers = ( str ) => {
const filters = str . split ( ',' ) . filter ( item => item . length > 0 )
if ( filters . length === 0 ) {
return users
}
const applyFilters = ( acc , filters , users ) => {
if ( filters . length === 0 ) {
return acc
}
const filteredUsers = users . filter ( user => user [ filters [ 0 ] ] )
const newAcc = [ ... filteredUsers ]
return applyFilters ( newAcc , filters . slice ( 1 ) , filteredUsers )
}
return applyFilters ( [ ] , filters , users )
}
2020-10-23 20:36:52 +00:00
const filterUsersByActorType = filters => {
return users . filter ( user => filters . includes ( user . actor _type ) )
}
2019-10-04 18:06:01 +00:00
export async function fetchUser ( id , authHost , token ) {
return Promise . resolve ( { data : userProfile } )
}
2020-04-17 22:27:00 +00:00
export async function fetchUserCredentials ( nickname , authHost , token ) {
return Promise . resolve ( { data : { } } )
}
2020-10-23 20:36:52 +00:00
export async function fetchUsers ( filters , actorTypeFilters , authHost , token , page = 1 ) {
2019-03-29 14:25:53 +00:00
const filteredUsers = filterUsers ( filters )
2020-10-23 20:36:52 +00:00
const filteredByActorTypeUsers = filterUsersByActorType ( actorTypeFilters )
const response = actorTypeFilters . length === 0 ? filteredUsers : filteredByActorTypeUsers
2019-03-22 20:58:58 +00:00
return Promise . resolve ( { data : {
2020-10-23 20:36:52 +00:00
users : response ,
count : response . length ,
2019-03-22 20:58:58 +00:00
page _size : 50
} } )
}
2019-10-04 18:06:01 +00:00
export async function fetchUserStatuses ( id , authHost , godmode , token ) {
return Promise . resolve ( { data : userStatuses } )
}
2020-09-11 17:38:32 +00:00
export async function fetchUserChats ( id , authHost , godmode , token ) {
return Promise . resolve ( { data : userChats } )
}
2019-09-23 19:00:28 +00:00
export async function getPasswordResetToken ( nickname , authHost , token ) {
return Promise . resolve ( { data : { token : 'g05lxnBJQnL' , link : 'http://url/api/pleroma/password_reset/g05lxnBJQnL' } } )
}
2020-10-23 20:36:52 +00:00
export async function searchUsers ( query , filters , actorTypeFilters , authHost , token , page = 1 ) {
2019-03-29 14:25:53 +00:00
const filteredUsers = filterUsers ( filters )
2020-10-23 20:36:52 +00:00
const filteredByActorTypeUsers = filterUsersByActorType ( actorTypeFilters )
const response = actorTypeFilters . length === 0 ? filteredUsers : filteredByActorTypeUsers
2019-03-22 20:58:58 +00:00
return Promise . resolve ( { data : {
2020-10-23 20:36:52 +00:00
users : response . filter ( user => user . nickname === query ) ,
count : response . filter ( user => user . nickname === query ) . length ,
2019-03-22 20:58:58 +00:00
page _size : 50
} } )
}
2019-03-22 21:18:57 +00:00
2019-10-12 06:45:43 +00:00
export async function activateUsers ( nicknames , authHost , token ) {
const response = nicknames . map ( nickname => {
const currentUser = users . find ( user => user . nickname === nickname )
return { ... currentUser , deactivated : false }
} )
return Promise . resolve ( { data : response } )
}
2019-10-10 23:49:16 +00:00
export async function addRight ( nicknames , right , authHost , token ) {
2019-03-22 21:18:57 +00:00
return Promise . resolve ( { data :
{ [ ` is_ ${ right } ` ] : true }
} )
}
2019-10-12 06:45:43 +00:00
export async function deactivateUsers ( nicknames , authHost , token ) {
const response = nicknames . map ( nickname => {
const currentUser = users . find ( user => user . nickname === nickname )
return { ... currentUser , deactivated : true }
} )
return Promise . resolve ( { data : response } )
}
2020-08-05 22:53:23 +00:00
export async function approveUserAccount ( nicknames , authHost , token ) {
const response = nicknames . map ( nickname => {
const currentUser = users . find ( user => user . nickname === nickname )
return { ... currentUser , approval _pending : false }
} )
return Promise . resolve ( { data : response } )
}
2019-03-23 14:09:48 +00:00
export async function deleteRight ( nickname , right , authHost , token ) {
2019-03-22 21:18:57 +00:00
return Promise . resolve ( { data :
{ [ ` is_ ${ right } ` ] : false }
} )
}
2019-10-18 11:57:48 +00:00
export async function deleteUsers ( nicknames , authHost , token ) {
2019-03-22 21:18:57 +00:00
return Promise . resolve ( { data :
2019-10-18 11:57:48 +00:00
nicknames
2019-03-22 21:18:57 +00:00
} )
}
2020-11-09 15:55:36 +00:00
export async function listAllTags ( authHost , token ) {
return Promise . resolve ( { data : [ 'verify' , 'mrf_tag:media-force-nsfw' ] } )
}
2019-03-23 14:09:48 +00:00
export async function tagUser ( nickname , tag , authHost , token ) {
2019-03-22 21:18:57 +00:00
return Promise . resolve ( )
}
2019-03-23 14:09:48 +00:00
export async function untagUser ( nickname , tag , authHost , token ) {
2019-03-22 21:18:57 +00:00
return Promise . resolve ( )
}
2019-06-11 15:13:48 +00:00
export async function createNewAccount ( nickname , email , password , authHost , token ) {
const newUser = { active : true , deactivated : false , id : '15' , nickname , local : true , external : false , roles : { admin : false , moderator : false } , tags : [ ] }
users = [ ... users , newUser ]
return Promise . resolve ( )
}
2020-08-23 21:31:38 +00:00
export async function updateUserCredentials ( nickname , credentials , authHost , token ) {
return Promise . resolve ( )
}
2020-10-12 21:21:21 +00:00
export async function disableMfa ( nickname , authHost , token ) {
return Promise . resolve ( )
}
export async function forcePasswordReset ( nicknames , authHost , token ) {
return Promise . resolve ( )
}
export async function confirmUserEmail ( nicknames , authHost , token ) {
return Promise . resolve ( )
}
export async function resendConfirmationEmail ( nicknames , authHost , token ) {
return Promise . resolve ( )
}