- Implemented CmsViewModel to manage CMS data loading and state. - Created MemberAreaDetailScreens for displaying member information and news. - Added MembersViewModel and MemberNewsViewModel for managing member data and news. - Developed MemberAreaScreen to provide navigation and display member-related options. - Introduced ProfileScreen and ProfileViewModel for user profile management. - Implemented state management for loading, error handling, and form updates across screens.
38 lines
857 B
JavaScript
38 lines
857 B
JavaScript
import { verifyToken } from '../utils/auth.js'
|
|
import { readNews } from '../utils/news.js'
|
|
|
|
export default defineEventHandler(async (event) => {
|
|
try {
|
|
const token = getCookie(event, 'auth_token') || getHeader(event, 'authorization')?.replace(/^Bearer\s+/i, '')
|
|
|
|
if (!token) {
|
|
throw createError({
|
|
statusCode: 401,
|
|
message: 'Nicht authentifiziert.'
|
|
})
|
|
}
|
|
|
|
const decoded = verifyToken(token)
|
|
|
|
if (!decoded) {
|
|
throw createError({
|
|
statusCode: 401,
|
|
message: 'Ungültiges Token.'
|
|
})
|
|
}
|
|
|
|
const news = await readNews()
|
|
|
|
// Sort by created date, newest first
|
|
news.sort((a, b) => new Date(b.created) - new Date(a.created))
|
|
|
|
return {
|
|
success: true,
|
|
news
|
|
}
|
|
} catch (error) {
|
|
console.error('Fehler beim Abrufen der News:', error)
|
|
throw error
|
|
}
|
|
})
|