2020
2121namespace API \App \v1 ;
2222
23- use API \Interfaces \CreateInterface ;
24- use API \Interfaces \UpdateInterface ;
25- use API \Resource ;
26- use API \Response ;
23+ use API \App \AppResource ;
2724
2825/**
2926 * Risorsa API per la gestione dei token FCM (Firebase Cloud Messaging) dei dispositivi.
3027 * Permette all'app di salvare e aggiornare i token FCM per l'invio di notifiche push.
3128 */
32- class FcmTokens extends Resource implements CreateInterface, UpdateInterface
29+ class FcmTokens extends AppResource
3330{
3431
35- public function create ($ request )
32+ public function getCleanupData ($ last_sync_at )
33+ {
34+ return [];
35+ }
36+
37+ public function getModifiedRecords ($ last_sync_at )
38+ {
39+ return [];
40+ }
41+
42+ public function retrieveRecord ($ id )
43+ {
44+ return [];
45+ }
46+
47+ public function createRecord ($ data )
3648 {
3749 $ database = database ();
3850 $ user = $ this ->getUser ();
3951
40- $ fcm_token = $ request ['token ' ];
41- $ platform = $ request ['platform ' ] ?? null ;
42- $ device_info = $ request ['device_info ' ] ?? null ;
52+ $ fcm_token = $ data ['token ' ];
53+ $ platform = $ data ['platform ' ] ?? null ;
54+ $ device_info = $ data ['device_info ' ] ?? null ;
4355 $ user_id = $ user ['id ' ];
4456
45- try {
46- // Verifica se esiste già un token per questo utente
47- $ existing_token = $ database ->fetchOne ('SELECT * FROM `zz_app_tokens` WHERE `id_user` = :user_id ' , [
48- ':user_id ' => $ user_id ,
49- ]);
50-
51- if ($ existing_token ) {
52- // Aggiorna il token esistente
53- $ database ->update ('zz_app_tokens ' , [
54- 'token ' => $ fcm_token ,
55- 'platform ' => $ platform ,
56- 'device_info ' => $ device_info ? json_encode ($ device_info ) : null ,
57- ], ['id ' => $ existing_token ['id ' ]]);
57+ // Verifica se esiste già un token per questo utente
58+ $ existing_token = $ database ->fetchOne ('SELECT * FROM `zz_app_tokens` WHERE `id_user` = :user_id ' , [
59+ ':user_id ' => $ user_id ,
60+ ]);
5861
59- $ token_id = $ existing_token ['id ' ];
60- } else {
61- // Crea un nuovo record
62- $ database ->insert ('zz_app_tokens ' , [
63- 'id_user ' => $ user_id ,
64- 'token ' => $ fcm_token ,
65- 'platform ' => $ platform ,
66- 'device_info ' => $ device_info ? json_encode ($ device_info ) : null ,
67- ]);
62+ if ($ existing_token ) {
63+ // Aggiorna il token esistente
64+ $ database ->update ('zz_app_tokens ' , [
65+ 'token ' => $ fcm_token ,
66+ 'platform ' => $ platform ,
67+ 'device_info ' => $ device_info ? json_encode ($ device_info ) : null ,
68+ ], ['id ' => $ existing_token ['id ' ]]);
6869
69- $ token_id = $ database ->lastInsertedID ();
70- }
71-
72- return [
73- 'id ' => $ token_id
74- ];
70+ $ token_id = $ existing_token ['id ' ];
71+ } else {
72+ // Crea un nuovo record
73+ $ database ->insert ('zz_app_tokens ' , [
74+ 'id_user ' => $ user_id ,
75+ 'token ' => $ fcm_token ,
76+ 'platform ' => $ platform ,
77+ 'device_info ' => $ device_info ? json_encode ($ device_info ) : null ,
78+ ]);
7579
76- } catch (\Exception $ e ) {
77- return [
78- 'status ' => Response::getStatus ()['internal_error ' ]['code ' ],
79- 'message ' => 'Errore durante il salvataggio del token ' ,
80- ];
80+ $ token_id = $ database ->lastInsertedID ();
8181 }
82+
83+ return [
84+ 'id ' => $ token_id
85+ ];
8286 }
8387
8488 /**
@@ -88,10 +92,10 @@ public function create($request)
8892 *
8993 * @return array Risposta dell'operazione
9094 */
91- public function update ( $ request )
95+ public function updateRecord ( $ data )
9296 {
9397 // Per i token FCM, l'operazione di update è identica a create
9498 // poiché gestiamo automaticamente la creazione o l'aggiornamento
95- return $ this ->create ($ request );
99+ return $ this ->create ($ data );
96100 }
97101}
0 commit comments