import React, { useState } from 'react'; import request from 'superagent'; import Moment from 'moment'; const BrewCleanup = ({})=>{ const [junkBrewCollection, setJunkBrewCollection] = useState([]); const [lostBrewCollection, setLostBrewCollection] = useState([]); const [pendingJunk, setPendingJunk] = useState(false); const [pendingLost, setPendingLost] = useState(false); const [error, setError] = useState(null); const find = async (type)=>{ if(type === 'junk') try { setPendingJunk(true); const res = await request.get('/admin/cleanupJunk'); setJunkBrewCollection(res.body.brewCollection); } catch (err) { setError(err); } finally { setPendingJunk(false); } if(type === 'lost') try { setPendingLost(true); const res = await request.get('/admin/cleanupLost'); setLostBrewCollection(res.body.brewCollection); } catch (err) { setError(err); } finally { setPendingLost(false); } }; const cleanup = async (type)=>{ if(type === 'junk') try { setPendingJunk(true); console.log('deleting junk'); const res = await request.post('/admin/cleanupJunk'); } catch (err) { setError(err); } finally { setPendingJunk(false); setJunkBrewCollection([]); } if(type === 'lost') try { setPendingLost(true); const res = await request.post('/admin/cleanupLost'); } catch (err) { setError(err); } finally { setPendingLost(false); setLostBrewCollection([]); } }; const renderBrewList = (type)=>{ const brewList = type === 'lost' ? lostBrewCollection : junkBrewCollection; if(!brewList || brewList.length === 0) { return <>

{`Results - No brews found` }

Title Last Update last viewed Storage
"No brews found"
; } console.log(type); console.log(brewList); return <>

{`Results - ${brewList.length} brews` }

{brewList .sort((a, b)=>{ // Sort brews from most recently updated if(a.lastViewed > b.lastViewed) return -1; return 1; }) .map((brew, idx)=>{ return })}
Title Last Update last viewed Storage
{brew.title || 'No Title'} {Moment(brew.updatedAt).fromNow()} {brew.lastViewed ? Moment(brew.lastViewed).fromNow() : 'No last viewed date'} {brew.googleId ? 'Google' : 'Homebrewery'}
; }; const renderFound = (type)=>{ const deleteButton = !(type === 'junk' && junkBrewCollection.length === 0 || type === 'lost' && lostBrewCollection.length === 0); return
{deleteButton && } {renderBrewList(type)}
; }; const renderJunkBrewCleanup = ()=>{ return

Junk brews

Queries unauthored brews that have not been viewed or
updated in 30 days and are shorter than 140 bytes (up to 300)

{renderFound('junk')} {error &&
{error.toString()}
}
; }; const renderLostBrewCleanup = ()=>{ return

Lost brews

Queries unauthored brews that have not been
updated or viewed for 2 years (up to 500)

{renderFound('lost')} {error &&
{error.toString()}
}
; }; return

Brew Cleanup

{renderJunkBrewCleanup()}

{renderLostBrewCleanup()}
; }; export default BrewCleanup;