@@ -4,6 +4,7 @@ const Sponsor = require('../entities/sponsor');
44const { resolve } = require ( 'node:path' ) ;
55const { existsSync } = require ( 'node:fs' ) ;
66const { google } = require ( 'googleapis' ) ;
7+ const { getLoggedInUser, sendNotification } = require ( '../lib/helpers' ) ;
78
89const router = Router ( ) ;
910const androidpublisher = google . androidpublisher ( 'v3' ) ;
@@ -12,7 +13,14 @@ const sponsorImagesPath = resolve(__dirname, '../../data/sponsors');
1213router . get ( '/' , async ( req , res ) => {
1314 const { page, limit } = req . query ;
1415
15- const rows = await Sponsor . get ( Sponsor . safeColumns , [ [ Sponsor . STATUS , Sponsor . STATE_PURCHASED ] ] , { page, limit } ) ;
16+ const rows = await Sponsor . get (
17+ Sponsor . safeColumns ,
18+ [
19+ [ Sponsor . STATUS , Sponsor . STATE_PURCHASED ] ,
20+ [ Sponsor . PUBLIC , 1 ] ,
21+ ] ,
22+ { page, limit } ,
23+ ) ;
1624
1725 res . send ( rows ) ;
1826} ) ;
@@ -66,11 +74,33 @@ router.post('/', async (req, res) => {
6674 [ Sponsor . STATUS , purchase . purchaseState ] ,
6775 ) ;
6876
77+ if ( email ) {
78+ sendNotification ( email , name , 'Thank you for sponsoring Acode' , `We appreciate your support, ${ name } . Thank you for being a valued sponsor!` ) ;
79+ }
80+
6981 res . status ( 201 ) . json ( { message : 'Thank you for becoming a sponsor!' } ) ;
7082 } catch ( error ) {
7183 console . error ( 'Error processing sponsorship:' , error ) ;
7284 res . status ( 403 ) . json ( { error : 'Purchase not valid' } ) ;
7385 }
7486} ) ;
7587
88+ router . delete ( '/:id' , async ( req , res ) => {
89+ const loggedInUser = await getLoggedInUser ( req ) ;
90+
91+ if ( loggedInUser . role !== 'admin' ) {
92+ return res . status ( 403 ) . json ( { error : 'Forbidden' } ) ;
93+ }
94+
95+ const { id } = req . params ;
96+
97+ try {
98+ await Sponsor . delete ( [ Sponsor . ID , id ] ) ;
99+ res . status ( 204 ) . send ( ) ;
100+ } catch ( error ) {
101+ console . error ( 'Error deleting sponsor:' , error ) ;
102+ res . status ( 500 ) . json ( { error : 'Internal Server Error' } ) ;
103+ }
104+ } ) ;
105+
76106module . exports = router ;
0 commit comments