diff --git a/app/Tasks/StatesTask.ts b/app/Tasks/StatesTask.ts index 0e53143..cf52170 100644 --- a/app/Tasks/StatesTask.ts +++ b/app/Tasks/StatesTask.ts @@ -12,28 +12,32 @@ interface StatesResponse { } async function getCurrentTime(): Promise { - const response = await axios.get<{ data: StatesResponse[]}>(`https://wakatime.com/api/v1/users/${Env.get('WAKATIME_USER')}/heartbeats`, { - headers: { - Authorization: `Basic ${btoa(Env.get('WAKATIME_KEY'))}`, - }, - params: { - date: new Date(), - }, - }) + try { + const response = await axios.get<{ data: StatesResponse[]}>(`https://wakatime.com/api/v1/users/${Env.get('WAKATIME_USER')}/heartbeats`, { + headers: { + Authorization: `Basic ${btoa(Env.get('WAKATIME_KEY'))}`, + }, + params: { + date: new Date(), + }, + }) - if (response.status === 200) { - const heartbeat = response.data.data[response.data.data.length - 1] - const current_time = new Date(Date.now()).getTime() / 1000 + if (response.status === 200) { + const heartbeat = response.data.data[response.data.data.length - 1] + const current_time = new Date(Date.now()).getTime() / 1000 - if (heartbeat && heartbeat.time!) { - const active = current_time - heartbeat.time <= 60 * 5 // Less than 5 min. - const redis_state = await Redis.get('states:developing') === 'true' + if (heartbeat && heartbeat.time!) { + const active = current_time - heartbeat.time <= 60 * 5 // Less than 5 min. + const redis_state = await Redis.get('states:developing') === 'true' - if (redis_state !== active) { - await Redis.set('states:developing', String(active)) - if (redis_state) await Redis.set('states:sleeping', 'false') + if (redis_state !== active) { + await Redis.set('states:developing', String(active)) + if (redis_state) await Redis.set('states:sleeping', 'false') + } } } + } catch (error) { + Logger.error('Error while getting the states') } } diff --git a/app/Tasks/StatsTask.ts b/app/Tasks/StatsTask.ts index 87b9302..671d041 100644 --- a/app/Tasks/StatsTask.ts +++ b/app/Tasks/StatsTask.ts @@ -17,24 +17,28 @@ interface StatsResponse { } async function getDevelopmentHours(): Promise { - const response = await axios.get<{ data: StatsResponse[]}>(`https://wakatime.com/share/@${Env.get('WAKATIME_USER')}/${Env.get('WAKATIME_ID')}.json`) - if (response.status === 200) { - const mapped_stats = response.data.data.map((item: StatsResponse) => { - return { - seconds: item.grand_total.total_seconds, date: item.range.date, - } - }) - - for (const data of mapped_stats) { - await DevelopmentHour.updateOrCreate({ - date: data.date.split('T')[0], - }, { - date: data.date.split('T')[0], - seconds: data.seconds, + try { + const response = await axios.get<{ data: StatsResponse[]}>(`https://wakatime.com/share/@${Env.get('WAKATIME_USER')}/${Env.get('WAKATIME_ID')}.json`) + if (response.status === 200) { + const mapped_stats = response.data.data.map((item: StatsResponse) => { + return { + seconds: item.grand_total.total_seconds, date: item.range.date, + } }) - } - await UpdateGithubReadme() + for (const data of mapped_stats) { + await DevelopmentHour.updateOrCreate({ + date: data.date.split('T')[0], + }, { + date: data.date.split('T')[0], + seconds: data.seconds, + }) + } + + await UpdateGithubReadme() + } + } catch (error) { + Logger.error('Error while getting the stats') } }