Skip to content

Commit

Permalink
Merge branch 'master' into achats-dans-collections-dediees
Browse files Browse the repository at this point in the history
  • Loading branch information
gfra54 committed Apr 24, 2024
2 parents 532c470 + 4c92de7 commit 3d03121
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 51 deletions.
9 changes: 0 additions & 9 deletions lib/api.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,15 +47,6 @@ export async function getMemberActivity(req, res) {
res.send(activity)
}

export async function getMemberPresences(req, res) {
const activity = await Activity.getMemberActivity(req.rawUser._id)
res.send(activity.map(item => ({
date: item.date,
amount: item.value,
type: item.type === 'subscription' ? 'A' : 'T'
})))
}

export async function getMemberSubscriptions(req, res) {
const subscriptions = await Subscription.getMemberSubscriptions(req.rawUser._id)
res.send(subscriptions)
Expand Down
33 changes: 19 additions & 14 deletions lib/services/calendar.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import {add, sub} from 'date-fns'
import {add, isAfter, sub} from 'date-fns'
import {zonedTimeToUtc} from 'date-fns-tz'
import got from 'got'
import {uniq} from 'lodash-es'
Expand Down Expand Up @@ -56,19 +56,24 @@ const fetchAmourFoodEvents = async () => {
}
}).json()

return events.map(event => {
const eventDay = zonedTimeToUtc(event.time * 1000, 'Europe/Paris')
return {
title: event.details?.plat_viande || event.nom,
description: event.description.replaceAll(/<[^>]*>?/gm, ''), // Strip HTML tags
start: add(eventDay, {hours: 12}).toISOString(),
end: add(eventDay, {hours: 13, minutes: 30}).toISOString(),
location: 'L\'Amour Food, 7 Av. de Blida, 57000 Metz',
urls: [event.disponible && event.permalink].filter(Boolean),
pictures: [event.illustration],
calendar: 'AMOUR_FOOD'
}
})
return events
.filter(event => {
const eventDay = zonedTimeToUtc(event.time * 1000, 'Europe/Paris')
return isAfter(eventDay, sub(new Date(), {months: 1}))
})
.map(event => {
const eventDay = zonedTimeToUtc(event.time * 1000, 'Europe/Paris')
return {
title: event.details?.plat_viande || event.nom,
description: event.description.replaceAll(/<[^>]*>?/gm, ''), // Strip HTML tags
start: add(eventDay, {hours: 12}).toISOString(),
end: add(eventDay, {hours: 13, minutes: 30}).toISOString(),
location: 'L\'Amour Food, 7 Av. de Blida, 57000 Metz',
urls: [event.disponible && event.permalink].filter(Boolean),
pictures: [event.illustration],
calendar: 'AMOUR_FOOD'
}
})
}

/**
Expand Down
34 changes: 6 additions & 28 deletions server.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ import {
getAllMembers,
getMemberInfos,
getMemberActivity,
getMemberPresences,
getMemberTickets,
getMemberSubscriptions,
getMemberMemberships,
Expand Down Expand Up @@ -83,25 +82,6 @@ app.param('userId', w(async (req, res, next) => {
next()
}))

async function resolveUserUsingEmail(req, res, next) {
if (req.rawUser) {
return next()
}

const email = req.method === 'POST' ? req.body.email : req.query.email
if (!email) {
throw createHttpError(400, 'Missing email')
}

req.rawUser = await Member.getUserByEmail(email)

if (!req.rawUser) {
throw createHttpError(404, 'User not found')
}

next()
}

/* Public access */

app.use('/stats', statsRoutes)
Expand All @@ -122,14 +102,6 @@ app.get('/api/voting-members', w(multiAuth), w(ensureAdmin), w(getVotingMembers)
app.get('/api/users-stats', w(multiAuth), w(ensureAdmin), w(getUsersStats))
app.get('/api/current-members', w(multiAuth), w(getCurrentMembers))

/* General purpose (legacy) */

app.get('/api/user-stats', w(ensureToken), w(resolveUserUsingEmail), w(getMemberInfos))
app.post('/api/user-stats', express.urlencoded({extended: false}), w(ensureToken), w(resolveUserUsingEmail), w(getMemberInfos))
app.get('/api/members/:userId/presences', w(multiAuth), w(getMemberPresences))
app.get('/api/user-presences', w(ensureToken), w(resolveUserUsingEmail), w(getMemberPresences))
app.get('/api/current-users', w(ensureToken), w(getCurrentMembers))

/* Presences */

app.post('/api/heartbeat', express.urlencoded({extended: false}), w(ensureToken), w(heartbeat))
Expand All @@ -148,6 +120,9 @@ app.post('/api/interphone', w(multiAuth), w(async (req, res) => {
throw createHttpError(403, 'Forbidden')
}

// At least log who is pressing intercom button
console.log(`${req.user?.email || 'Someone'} is pressing intercom button`)

await pressIntercomButton()
const now = new Date()
res.send({
Expand All @@ -162,6 +137,9 @@ app.post('/api/parking', w(multiAuth), w(async (req, res) => {
throw createHttpError(403, 'Forbidden')
}

// At least log who is opening parking gate
console.log(`${req.user?.email || 'Someone'} is opening parking gate`)

await pressRemoteButton()
const now = new Date()
res.send({
Expand Down

0 comments on commit 3d03121

Please sign in to comment.