From 3f120fe537e02ff49a2f8f9612c33d944a78d7c8 Mon Sep 17 00:00:00 2001
From: David Johan Hasiholan Parhusip <david.johan@ui.ac.id>
Date: Mon, 12 Dec 2022 20:16:18 +0700
Subject: [PATCH] feat 18: action logging rest api v3

---
 .../ApotekerRestController.java               |   5 ++--
 .../AppointmentRestController.java            |   9 ++++---
 .../restController/DokterRestController.java  |  25 +++++++++---------
 .../restController/PasienRestController.java  |  17 ++++++------
 .../restController/ResepRestController.java   |   9 ++++---
 .../restController/TagihanRestController.java |  17 ++++++------
 .../executionHistory/executionHistory.lock    | Bin 17 -> 17 bytes
 .../.gradle/7.5.1/fileHashes/fileHashes.lock  | Bin 17 -> 17 bytes
 .../buildOutputCleanup.lock                   | Bin 17 -> 17 bytes
 .../ApotekerRestController.java               |   5 ++--
 .../AppointmentRestController.java            |  17 ++++++------
 .../restController/AuthRestController.java    |   2 +-
 .../restController/DokterRestController.java  |   9 ++++---
 .../restController/PasienRestController.java  |  17 ++++++------
 .../restController/ResepRestController.java   |  13 ++++-----
 .../restController/TagihanRestController.java |  17 ++++++------
 rumahSehat_mobile/android/local.properties    |   4 +--
 17 files changed, 89 insertions(+), 77 deletions(-)

diff --git a/rumahSehat/src/main/java/apap/tk/rumahSehat/controller/restController/ApotekerRestController.java b/rumahSehat/src/main/java/apap/tk/rumahSehat/controller/restController/ApotekerRestController.java
index 4f5b616..cb32f23 100644
--- a/rumahSehat/src/main/java/apap/tk/rumahSehat/controller/restController/ApotekerRestController.java
+++ b/rumahSehat/src/main/java/apap/tk/rumahSehat/controller/restController/ApotekerRestController.java
@@ -5,6 +5,7 @@ import apap.tk.rumahSehat.service.ApotekerServiceImpl;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
+import org.springframework.security.core.Authentication;
 import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -22,13 +23,13 @@ public class ApotekerRestController {
     private ApotekerServiceImpl apotekerService;
 
     @PostMapping(value = "/add")
-    private ApotekerModel createApoteker(@Valid @RequestBody ApotekerModel apoteker, BindingResult bindingResult) {
+    private ApotekerModel createApoteker(@Valid @RequestBody ApotekerModel apoteker, BindingResult bindingResult, Authentication authentication) {
         if (bindingResult.hasFieldErrors()) {
             log.info("Body has invalid type or missing field when creating Apoteker.");
             throw new ResponseStatusException(
                     HttpStatus.BAD_REQUEST, "Request body has invalid type or missing field.");
         } else {
-            log.info("User added new Apoteker.");
+            log.info(authentication.getName() + " added new Apoteker.");
             return apotekerService.addApoteker(apoteker);
         }
     }
diff --git a/rumahSehat/src/main/java/apap/tk/rumahSehat/controller/restController/AppointmentRestController.java b/rumahSehat/src/main/java/apap/tk/rumahSehat/controller/restController/AppointmentRestController.java
index b44fe7e..f93cacc 100644
--- a/rumahSehat/src/main/java/apap/tk/rumahSehat/controller/restController/AppointmentRestController.java
+++ b/rumahSehat/src/main/java/apap/tk/rumahSehat/controller/restController/AppointmentRestController.java
@@ -6,6 +6,7 @@ import apap.tk.rumahSehat.service.AppointmentServiceImpl;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
+import org.springframework.security.core.Authentication;
 import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.server.ResponseStatusException;
@@ -20,7 +21,7 @@ public class AppointmentRestController {
     private AppointmentServiceImpl appointmentService;
 
     @PostMapping(value = "/add")
-    private AppointmentModel createAppointment(@Valid @RequestBody AppointmentModel appointment, BindingResult bindingResult) {
+    private AppointmentModel createAppointment(@Valid @RequestBody AppointmentModel appointment, BindingResult bindingResult, Authentication authentication) {
         if (bindingResult.hasFieldErrors()) {
             log.info("Body has invalid type or missing field when creating Appointment.");
             throw new ResponseStatusException(
@@ -33,14 +34,14 @@ public class AppointmentRestController {
                         HttpStatus.BAD_REQUEST, "Create Failed");
             }
             else {
-                log.info("User added new Appointment.");
+                log.info(authentication.getName() + " added new Appointment.");
                 return appointmentBaru;
             }
         }
     }
     @GetMapping(value = "/viewAll")
-    private List<AppointmentModel> retrieveListAppointment() {
-        log.info("User accessed all Appointment.");
+    private List<AppointmentModel> retrieveListAppointment(Authentication authentication) {
+        log.info(authentication.getName() + " accessed all Appointment.");
         return appointmentService.findAllAppointment();
     }
 }
diff --git a/rumahSehat/src/main/java/apap/tk/rumahSehat/controller/restController/DokterRestController.java b/rumahSehat/src/main/java/apap/tk/rumahSehat/controller/restController/DokterRestController.java
index 4dffdab..2b05935 100644
--- a/rumahSehat/src/main/java/apap/tk/rumahSehat/controller/restController/DokterRestController.java
+++ b/rumahSehat/src/main/java/apap/tk/rumahSehat/controller/restController/DokterRestController.java
@@ -5,6 +5,7 @@ import apap.tk.rumahSehat.service.DokterServiceImpl;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
+import org.springframework.security.core.Authentication;
 import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.server.ResponseStatusException;
@@ -20,26 +21,26 @@ public class DokterRestController {
     private DokterServiceImpl dokterService;
 
     @PostMapping(value = "/add")
-    private DokterModel createDokter(@Valid @RequestBody DokterModel dokter, BindingResult bindingResult) {
+    private DokterModel createDokter(@Valid @RequestBody DokterModel dokter, BindingResult bindingResult, Authentication authentication) {
         if (bindingResult.hasFieldErrors()) {
             log.info("Body has invalid type or missing field when creating Dokter.");
             throw new ResponseStatusException(
                     HttpStatus.BAD_REQUEST, "Request body has invalid type or missing field.");
         } else {
-            log.info("User added new Dokter.");
+            log.info(authentication.getName() + " added new Dokter.");
             return dokterService.addDokter(dokter);
         }
     }
 
     @GetMapping(value = "/viewAll")
-    private List<DokterModel> retrieveListDokter() {
-        log.info("User accessed all Dokter.");
+    private List<DokterModel> retrieveListDokter(Authentication authentication) {
+        log.info(authentication.getName() + " accessed all Dokter.");
         return dokterService.findAllDokter();
     }
 
     @GetMapping(value = "/{uuid}")
-    private HashMap<String, String> retrieveNamaDokter(@PathVariable("uuid") String uuid) {
-        log.info("User accessed name Dokter " + uuid +".");
+    private HashMap<String, String> retrieveNamaDokter(@PathVariable("uuid") String uuid, Authentication authentication) {
+        log.info(authentication.getName() + " accessed name Dokter " + uuid +".");
         return dokterService.getDokterName(uuid);
     }
 
@@ -64,20 +65,20 @@ public class DokterRestController {
                                            @PathVariable("uuid4") String uuid4,
                                            @PathVariable("uuid5") String uuid5,
                                            @PathVariable("uuid6") String uuid6,
-                                           @PathVariable("uuid7") String uuid7) {
-        log.info("User accessed pendapatan Dokter.");
+                                           @PathVariable("uuid7") String uuid7, Authentication authentication) {
+        log.info(authentication.getName() + " accessed pendapatan Dokter.");
         return dokterService.getJumlahAppointment(uuid0, uuid1, uuid2, uuid3, uuid4, uuid5, uuid6, uuid7);
     }
 
     @GetMapping(value = "/pendapatan-bulan/{bulan}/{tahun}/{uuid}")
-    private List retrievePendapatanBulanan(@PathVariable("bulan") int bulan, @PathVariable("tahun") int tahun, @PathVariable("uuid") String uuid) {
-        log.info("User accessed pendapatan bulanan Dokter.");
+    private List retrievePendapatanBulanan(@PathVariable("bulan") int bulan, @PathVariable("tahun") int tahun, @PathVariable("uuid") String uuid, Authentication authentication) {
+        log.info(authentication.getName() + " accessed pendapatan bulanan Dokter.");
         return dokterService.getPendapatanBulan(bulan, tahun, uuid);
     }
 
     @GetMapping(value = "/pendapatan-tahun/{tahun}/{uuid}")
-    private List retrievePendapatanTahunan(@PathVariable("tahun") int tahun, @PathVariable("uuid") String uuid) {
-        log.info("User accessed pendapatan tahunan Dokter.");
+    private List retrievePendapatanTahunan(@PathVariable("tahun") int tahun, @PathVariable("uuid") String uuid, Authentication authentication) {
+        log.info(authentication.getName() + " accessed pendapatan tahunan Dokter.");
         return dokterService.getPendapatanTahunan(tahun, uuid);
     }
 }
diff --git a/rumahSehat/src/main/java/apap/tk/rumahSehat/controller/restController/PasienRestController.java b/rumahSehat/src/main/java/apap/tk/rumahSehat/controller/restController/PasienRestController.java
index 09036f3..1289afd 100644
--- a/rumahSehat/src/main/java/apap/tk/rumahSehat/controller/restController/PasienRestController.java
+++ b/rumahSehat/src/main/java/apap/tk/rumahSehat/controller/restController/PasienRestController.java
@@ -6,6 +6,7 @@ import apap.tk.rumahSehat.service.PasienServiceImpl;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
+import org.springframework.security.core.Authentication;
 import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.server.ResponseStatusException;
@@ -21,7 +22,7 @@ public class PasienRestController {
     private PasienServiceImpl pasienService;
 
     @PostMapping(value = "/add")
-    private PasienModel createPasien(@Valid @RequestBody PasienModel pasien, BindingResult bindingResult) {
+    private PasienModel createPasien(@Valid @RequestBody PasienModel pasien, BindingResult bindingResult, Authentication authentication) {
         if (bindingResult.hasFieldErrors()) {
             log.info("Body has invalid type or missing field when creating Pasien.");
             throw new ResponseStatusException(
@@ -31,27 +32,27 @@ public class PasienRestController {
             throw new ResponseStatusException(
                     HttpStatus.BAD_REQUEST, "Pasien Role must be PASIEN");
         } else{
-            log.info("User added new Pasien.");
+            log.info(authentication.getName() + " added new Pasien.");
             return pasienService.addPasien(pasien);
         }
     }
 
     @GetMapping(value = "/viewAll")
-    private List<PasienModel> retrieveListPasien() {
-        log.info("User accessed all Pasien.");
+    private List<PasienModel> retrieveListPasien(Authentication authentication) {
+        log.info(authentication.getName() + " accessed all Pasien.");
         return pasienService.findAllPasien();
     }
 
     @GetMapping(value = "/view/{username}")
-    private PasienModel retrieveCurrentPasien(@PathVariable("username") String username) {
-        log.info("User accessed username Pasien " + username +".");
+    private PasienModel retrieveCurrentPasien(@PathVariable("username") String username, Authentication authentication) {
+        log.info(authentication.getName() + " accessed username Pasien " + username +".");
         return pasienService.findPasienByUsername(username);
     }
 
     @PutMapping(value = "view/topup/{username}")
-    private PasienModel topUpSaldo(@PathVariable("username") String username, @RequestBody PasienModel pasien) {
+    private PasienModel topUpSaldo(@PathVariable("username") String username, @RequestBody PasienModel pasien, Authentication authentication) {
         try {
-            log.info("User topup saldo");
+            log.info(authentication.getName() + " topup saldo");
             return pasienService.topUp(pasien);
         } catch (NoSuchElementException e) {
             log.info("Pasien with username: " + username + "not found.");
diff --git a/rumahSehat/src/main/java/apap/tk/rumahSehat/controller/restController/ResepRestController.java b/rumahSehat/src/main/java/apap/tk/rumahSehat/controller/restController/ResepRestController.java
index a406cfe..6ca1ee1 100644
--- a/rumahSehat/src/main/java/apap/tk/rumahSehat/controller/restController/ResepRestController.java
+++ b/rumahSehat/src/main/java/apap/tk/rumahSehat/controller/restController/ResepRestController.java
@@ -6,6 +6,7 @@ import apap.tk.rumahSehat.service.ResepServiceImpl;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
+import org.springframework.security.core.Authentication;
 import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.server.ResponseStatusException;
@@ -20,20 +21,20 @@ public class ResepRestController {
     private ResepServiceImpl resepService;
 
     @PostMapping(value = "/add")
-    private ResepModel createResep(@Valid @RequestBody ResepModel resep, BindingResult bindingResult) {
+    private ResepModel createResep(@Valid @RequestBody ResepModel resep, BindingResult bindingResult, Authentication authentication) {
         if (bindingResult.hasFieldErrors()) {
             log.info("Body has invalid type or missing field when creating Resep.");
             throw new ResponseStatusException(
                     HttpStatus.BAD_REQUEST, "Request body has invalid type or missing field.");
         } else {
-            log.info("User added new Resep.");
+            log.info(authentication.getName() + " added new Resep.");
             return resepService.addResep(resep);
         }
     }
 
     @GetMapping(value = "/get-jumlah/{id}")
-    private List<JumlahModel> retrieveJumlah(@PathVariable("id") Long id) {
-        log.info("User accessed all Jumlah for Resep " + id + ".");
+    private List<JumlahModel> retrieveJumlah(@PathVariable("id") Long id, Authentication authentication) {
+        log.info(authentication.getName() + " accessed all Jumlah for Resep " + id + ".");
         ResepModel resep = resepService.findResepById(id);
         return resep.getListJumlah();
     }
diff --git a/rumahSehat/src/main/java/apap/tk/rumahSehat/controller/restController/TagihanRestController.java b/rumahSehat/src/main/java/apap/tk/rumahSehat/controller/restController/TagihanRestController.java
index 723e872..6472238 100644
--- a/rumahSehat/src/main/java/apap/tk/rumahSehat/controller/restController/TagihanRestController.java
+++ b/rumahSehat/src/main/java/apap/tk/rumahSehat/controller/restController/TagihanRestController.java
@@ -5,6 +5,7 @@ import apap.tk.rumahSehat.service.TagihanServiceImpl;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
+import org.springframework.security.core.Authentication;
 import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.server.ResponseStatusException;
@@ -19,30 +20,30 @@ public class TagihanRestController {
     private TagihanServiceImpl tagihanService;
 
     @PostMapping(value = "/add")
-    private TagihanModel createTagihan(@Valid @RequestBody TagihanModel tagihan, BindingResult bindingResult) {
+    private TagihanModel createTagihan(@Valid @RequestBody TagihanModel tagihan, BindingResult bindingResult, Authentication authentication) {
         if (bindingResult.hasFieldErrors()) {
             log.info("Body has invalid type or missing field when creating Tagihan.");
             throw new ResponseStatusException(
                     HttpStatus.BAD_REQUEST, "Request body has invalid type or missing field.");
         } else {
-            log.info("User added new Tagihan.");
+            log.info(authentication.getName() + " added new Tagihan.");
             return tagihanService.addTagihan(tagihan);
         }
     }
     @GetMapping(value = "/viewAll")
-    private List<TagihanModel> retrieveListTagihan() {
-        log.info("User accessed all Tagihan.");
+    private List<TagihanModel> retrieveListTagihan(Authentication authentication) {
+        log.info(authentication.getName() + " accessed all Tagihan.");
         return tagihanService.findAllTagihan();
     }
     @GetMapping(value = "/viewAll/{pasien}")
-    private List<TagihanModel> retrieveListTagihanOfPasien(@PathVariable("pasien") String pasien) {
-        log.info("User accessed all Tagihan for Pasien " + pasien + ".");
+    private List<TagihanModel> retrieveListTagihanOfPasien(@PathVariable("pasien") String pasien, Authentication authentication) {
+        log.info(authentication.getName() + " accessed all Tagihan for Pasien " + pasien + ".");
         return tagihanService.findTagihanOfPasien(pasien);
     }
 
     @PutMapping(value = "/pay/{pasien}/{tagihan}")
-    private TagihanModel updateTagihan(@PathVariable("pasien") String pasien, @PathVariable("tagihan") String tagihan) {
-        log.info("User update Tagihan " + tagihan + ".");
+    private TagihanModel updateTagihan(@PathVariable("pasien") String pasien, @PathVariable String tagihan, Authentication authentication) {
+        log.info(authentication.getName() + " update Tagihan " + tagihan + ".");
         return tagihanService.payTagihan(pasien, tagihan);
     }
 }
diff --git a/rumahSehat_jwt/.gradle/7.5.1/executionHistory/executionHistory.lock b/rumahSehat_jwt/.gradle/7.5.1/executionHistory/executionHistory.lock
index bee49173f9252190df70ea95a5c57fc2d9d9d9c9..b9a0ff4f87e0b1c708fad8468147e750f3bf1ba7 100644
GIT binary patch
literal 17
UcmZRcJVQ~p{l)(?3=q%<061?2MF0Q*

literal 17
UcmZRcJVQ~p{l)(?3=q%+061d>IRF3v

diff --git a/rumahSehat_jwt/.gradle/7.5.1/fileHashes/fileHashes.lock b/rumahSehat_jwt/.gradle/7.5.1/fileHashes/fileHashes.lock
index 292dbf821e31d0f0cf2656fe47feef29a140dcd6..0e29dddf0542c6f926671c64ac604ae323fd87f6 100644
GIT binary patch
literal 17
VcmZS1OYnTqB){%90~j#%0{}9i1hxPG

literal 17
VcmZS1OYnTqB){%90~jzR0{}901d0Fv

diff --git a/rumahSehat_jwt/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/rumahSehat_jwt/.gradle/buildOutputCleanup/buildOutputCleanup.lock
index 29131b46b78fa0436c61458831fbad57ca183dd9..3810f614810388dd6ae795cae1c7301db202316e 100644
GIT binary patch
literal 17
UcmZSnbYdHCS<KZ93=nV-06usHnE(I)

literal 17
UcmZSnbYdHCS<KZ93=psq06t&^fdBvi

diff --git a/rumahSehat_jwt/src/main/java/apap/tk/rumahSehat_jwt/restController/ApotekerRestController.java b/rumahSehat_jwt/src/main/java/apap/tk/rumahSehat_jwt/restController/ApotekerRestController.java
index f3d77cd..f6d9899 100644
--- a/rumahSehat_jwt/src/main/java/apap/tk/rumahSehat_jwt/restController/ApotekerRestController.java
+++ b/rumahSehat_jwt/src/main/java/apap/tk/rumahSehat_jwt/restController/ApotekerRestController.java
@@ -5,6 +5,7 @@ import apap.tk.rumahSehat_jwt.service.ApotekerServiceImpl;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
+import org.springframework.security.core.Authentication;
 import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -22,13 +23,13 @@ public class ApotekerRestController {
     private ApotekerServiceImpl apotekerService;
 
     @PostMapping(value = "/add")
-    private ApotekerModel createApoteker(@Valid @RequestBody ApotekerModel apoteker, BindingResult bindingResult) {
+    private ApotekerModel createApoteker(@Valid @RequestBody ApotekerModel apoteker, BindingResult bindingResult, Authentication authentication) {
         if (bindingResult.hasFieldErrors()) {
             log.info("Body has invalid type or missing field when creating Apoteker.");
             throw new ResponseStatusException(
                     HttpStatus.BAD_REQUEST, "Request body has invalid type or missing field.");
         } else {
-            log.info("User added new Apoteker.");
+            log.info(authentication.getName() + " added new Apoteker.");
             return apotekerService.addApoteker(apoteker);
         }
     }
diff --git a/rumahSehat_jwt/src/main/java/apap/tk/rumahSehat_jwt/restController/AppointmentRestController.java b/rumahSehat_jwt/src/main/java/apap/tk/rumahSehat_jwt/restController/AppointmentRestController.java
index 329bceb..b6ffd01 100644
--- a/rumahSehat_jwt/src/main/java/apap/tk/rumahSehat_jwt/restController/AppointmentRestController.java
+++ b/rumahSehat_jwt/src/main/java/apap/tk/rumahSehat_jwt/restController/AppointmentRestController.java
@@ -6,6 +6,7 @@ import apap.tk.rumahSehat_jwt.service.AppointmentServiceImpl;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
+import org.springframework.security.core.Authentication;
 import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.server.ResponseStatusException;
@@ -24,7 +25,7 @@ public class AppointmentRestController {
     private PasienServiceImpl pasienService;
 
     @PostMapping(value = "/add")
-    private AppointmentModel createAppointment(@Valid @RequestBody AppointmentModel appointment, BindingResult bindingResult) {
+    private AppointmentModel createAppointment(@Valid @RequestBody AppointmentModel appointment, BindingResult bindingResult, Authentication authentication) {
         if (bindingResult.hasFieldErrors()) {
             log.info("Body has invalid type or missing field when creating Appointment.");
             throw new ResponseStatusException(
@@ -37,28 +38,28 @@ public class AppointmentRestController {
                         HttpStatus.BAD_REQUEST, "Create Failed");
             }
             else {
-                log.info("User added new Appointment.");
+                log.info(authentication.getName() + " added new Appointment.");
                 return appointmentBaru;
             }
         }
     }
     @GetMapping(value = "/viewAll/{username}")
-    private List<AppointmentModel> retrieveListAppointment(@PathVariable("username") String username) {
-        log.info("User accessed all their Appointment.");
+    private List<AppointmentModel> retrieveListAppointment(@PathVariable("username") String username, Authentication authentication) {
+        log.info(authentication.getName() + " accessed all their Appointment.");
         PasienModel pasien = pasienService.findPasienByUsername(username);
         List<AppointmentModel> allAppointment = appointmentService.findByPasien(pasien);
         return allAppointment;
     }
 
     @GetMapping(value = "/viewAllNoUsername")
-    private List<AppointmentModel> retrieveListAppointment() {
-        log.info("User accessed all Appointment.");
+    private List<AppointmentModel> retrieveListAppointment(Authentication authentication) {
+        log.info(authentication.getName() + " accessed all Appointment.");
         return appointmentService.findAllAppointment();
     }
 
     @GetMapping(value = "/view/{kode}")
-    private AppointmentModel retrieveAppointment(@PathVariable("kode") String kode) {
-        log.info("User accessed Appointment " + kode + ".");
+    private AppointmentModel retrieveAppointment(@PathVariable("kode") String kode, Authentication authentication) {
+        log.info(authentication.getName() + " accessed Appointment " + kode + ".");
         AppointmentModel appointment = appointmentService.findByKode(kode);
         return appointment;
     }
diff --git a/rumahSehat_jwt/src/main/java/apap/tk/rumahSehat_jwt/restController/AuthRestController.java b/rumahSehat_jwt/src/main/java/apap/tk/rumahSehat_jwt/restController/AuthRestController.java
index 8961c31..07c0984 100644
--- a/rumahSehat_jwt/src/main/java/apap/tk/rumahSehat_jwt/restController/AuthRestController.java
+++ b/rumahSehat_jwt/src/main/java/apap/tk/rumahSehat_jwt/restController/AuthRestController.java
@@ -52,7 +52,7 @@ public class AuthRestController {
             log.info("User unauthorized, not PASIEN.");
             throw new ResponseStatusException(HttpStatus.UNAUTHORIZED);
         }
-        log.info("User login.");
+        log.info(authentication.getName() + " login.");
         return ResponseEntity.ok(new LoginResponse(user.getUsername(), user.getEmail(), jwt));
     }
 }
diff --git a/rumahSehat_jwt/src/main/java/apap/tk/rumahSehat_jwt/restController/DokterRestController.java b/rumahSehat_jwt/src/main/java/apap/tk/rumahSehat_jwt/restController/DokterRestController.java
index 2957505..5d11d97 100644
--- a/rumahSehat_jwt/src/main/java/apap/tk/rumahSehat_jwt/restController/DokterRestController.java
+++ b/rumahSehat_jwt/src/main/java/apap/tk/rumahSehat_jwt/restController/DokterRestController.java
@@ -5,6 +5,7 @@ import apap.tk.rumahSehat_jwt.service.DokterServiceImpl;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
+import org.springframework.security.core.Authentication;
 import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.server.ResponseStatusException;
@@ -19,20 +20,20 @@ public class DokterRestController {
     private DokterServiceImpl dokterService;
 
     @PostMapping(value = "/add")
-    private DokterModel createDokter(@Valid @RequestBody DokterModel dokter, BindingResult bindingResult) {
+    private DokterModel createDokter(@Valid @RequestBody DokterModel dokter, BindingResult bindingResult, Authentication authentication) {
         if (bindingResult.hasFieldErrors()) {
             log.info("Body has invalid type or missing field when creating Dokter.");
             throw new ResponseStatusException(
                     HttpStatus.BAD_REQUEST, "Request body has invalid type or missing field.");
         } else {
-            log.info("User added new Dokter.");
+            log.info(authentication.getName() + " added new Dokter.");
             return dokterService.addDokter(dokter);
         }
     }
 
     @GetMapping(value = "/viewAll")
-    private List<DokterModel> retrieveListDokter() {
-        log.info("User accessed all Dokter.");
+    private List<DokterModel> retrieveListDokter(Authentication authentication) {
+        log.info(authentication.getName() + " accessed all Dokter.");
         return dokterService.findAllDokter();
     }
 }
diff --git a/rumahSehat_jwt/src/main/java/apap/tk/rumahSehat_jwt/restController/PasienRestController.java b/rumahSehat_jwt/src/main/java/apap/tk/rumahSehat_jwt/restController/PasienRestController.java
index 7118e73..0171a07 100644
--- a/rumahSehat_jwt/src/main/java/apap/tk/rumahSehat_jwt/restController/PasienRestController.java
+++ b/rumahSehat_jwt/src/main/java/apap/tk/rumahSehat_jwt/restController/PasienRestController.java
@@ -6,6 +6,7 @@ import apap.tk.rumahSehat_jwt.service.PasienServiceImpl;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
+import org.springframework.security.core.Authentication;
 import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.server.ResponseStatusException;
@@ -21,7 +22,7 @@ public class PasienRestController {
     private PasienServiceImpl pasienService;
 
     @PostMapping(value = "/add")
-    private PasienModel createPasien(@Valid @RequestBody PasienModel pasien, BindingResult bindingResult) {
+    private PasienModel createPasien(@Valid @RequestBody PasienModel pasien, BindingResult bindingResult, Authentication authentication) {
         if (bindingResult.hasFieldErrors()) {
             log.info("Body has invalid type or missing field when creating Pasien.");
             throw new ResponseStatusException(
@@ -31,27 +32,27 @@ public class PasienRestController {
             throw new ResponseStatusException(
                     HttpStatus.BAD_REQUEST, "Pasien Role must be PASIEN");
         } else{
-            log.info("User added new Pasien.");
+            log.info(authentication.getName() + " added new Pasien.");
             return pasienService.addPasien(pasien);
         }
     }
 
     @GetMapping(value = "/viewAll")
-    private List<PasienModel> retrieveListPasien() {
-        log.info("User accessed all Pasien.");
+    private List<PasienModel> retrieveListPasien(Authentication authentication) {
+        log.info(authentication.getName() + " accessed all Pasien.");
         return pasienService.findAllPasien();
     }
 
     @GetMapping(value = "/view/{username}")
-    private PasienModel retrieveCurrentPasien(@PathVariable("username") String username) {
-        log.info("User accessed username Pasien " + username +".");
+    private PasienModel retrieveCurrentPasien(@PathVariable("username") String username, Authentication authentication) {
+        log.info(authentication.getName() + " accessed username Pasien " + username +".");
         return pasienService.findPasienByUsername(username);
     }
 
     @PutMapping(value = "view/topup/{username}")
-    private PasienModel topUpSaldo(@PathVariable("username") String username, @RequestBody PasienModel pasien) {
+    private PasienModel topUpSaldo(@PathVariable("username") String username, @RequestBody PasienModel pasien, Authentication authentication) {
         try {
-            log.info("User topup saldo");
+            log.info(authentication.getName() + " topup saldo");
             return pasienService.topUp(pasien);
         } catch (NoSuchElementException e) {
             log.info("Pasien with username: " + username + "not found.");
diff --git a/rumahSehat_jwt/src/main/java/apap/tk/rumahSehat_jwt/restController/ResepRestController.java b/rumahSehat_jwt/src/main/java/apap/tk/rumahSehat_jwt/restController/ResepRestController.java
index ddb3e31..927641c 100644
--- a/rumahSehat_jwt/src/main/java/apap/tk/rumahSehat_jwt/restController/ResepRestController.java
+++ b/rumahSehat_jwt/src/main/java/apap/tk/rumahSehat_jwt/restController/ResepRestController.java
@@ -8,6 +8,7 @@ import apap.tk.rumahSehat_jwt.service.ResepServiceImpl;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
+import org.springframework.security.core.Authentication;
 import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.server.ResponseStatusException;
@@ -25,27 +26,27 @@ public class ResepRestController {
     private AppointmentServiceImpl appointmentService;
 
     @PostMapping(value = "/add")
-    private ResepModel createResep(@Valid @RequestBody ResepModel resep, BindingResult bindingResult) {
+    private ResepModel createResep(@Valid @RequestBody ResepModel resep, BindingResult bindingResult, Authentication authentication) {
         if (bindingResult.hasFieldErrors()) {
             log.info("Body has invalid type or missing field when creating Resep.");
             throw new ResponseStatusException(
                     HttpStatus.BAD_REQUEST, "Request body has invalid type or missing field.");
         } else {
-            log.info("User added new Resep.");
+            log.info(authentication.getName() + " added new Resep.");
             return resepService.addResep(resep);
         }
     }
 
     @GetMapping(value = "/view/{kodeApt}")
-    private ResepModel retrieveResep(@PathVariable("kodeApt") String kodeApt) {
-        log.info("User accessed Resep for Appointment " + kodeApt + ".");
+    private ResepModel retrieveResep(@PathVariable("kodeApt") String kodeApt, Authentication authentication) {
+        log.info(authentication.getName() + " accessed Resep for Appointment " + kodeApt + ".");
         AppointmentModel appointment = appointmentService.findByKode(kodeApt);
         ResepModel resep = resepService.findByAppointment(appointment);
         return resep;
     }
     @GetMapping(value = "/get-jumlah/{id}")
-    private List<JumlahModel> retrieveJumlah(@PathVariable("id") Long id) {
-        log.info("User accessed all Jumlah for Resep " + id + ".");
+    private List<JumlahModel> retrieveJumlah(@PathVariable("id") Long id, Authentication authentication) {
+        log.info(authentication.getName() + " accessed all Jumlah for Resep " + id + ".");
         ResepModel resep = resepService.findResepById(id);
         return resep.getListJumlah();
     }
diff --git a/rumahSehat_jwt/src/main/java/apap/tk/rumahSehat_jwt/restController/TagihanRestController.java b/rumahSehat_jwt/src/main/java/apap/tk/rumahSehat_jwt/restController/TagihanRestController.java
index e3d8bf3..30f4bcd 100644
--- a/rumahSehat_jwt/src/main/java/apap/tk/rumahSehat_jwt/restController/TagihanRestController.java
+++ b/rumahSehat_jwt/src/main/java/apap/tk/rumahSehat_jwt/restController/TagihanRestController.java
@@ -5,6 +5,7 @@ import apap.tk.rumahSehat_jwt.service.TagihanServiceImpl;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
+import org.springframework.security.core.Authentication;
 import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.server.ResponseStatusException;
@@ -19,31 +20,31 @@ public class TagihanRestController {
     private TagihanServiceImpl tagihanService;
 
     @PostMapping(value = "/add")
-    private TagihanModel createTagihan(@Valid @RequestBody TagihanModel tagihan, BindingResult bindingResult) {
+    private TagihanModel createTagihan(@Valid @RequestBody TagihanModel tagihan, BindingResult bindingResult, Authentication authentication) {
         if (bindingResult.hasFieldErrors()) {
             log.info("Body has invalid type or missing field when creating Tagihan.");
             throw new ResponseStatusException(
                     HttpStatus.BAD_REQUEST, "Request body has invalid type or missing field.");
         } else {
-            log.info("User added new Tagihan.");
+            log.info(authentication.getName() + " added new Tagihan.");
             return tagihanService.addTagihan(tagihan);
         }
     }
     @GetMapping(value = "/viewAll")
-    private List<TagihanModel> retrieveListTagihan() {
-        log.info("User accessed all Tagihan.");
+    private List<TagihanModel> retrieveListTagihan(Authentication authentication) {
+        log.info(authentication.getName() + " accessed all Tagihan.");
         return tagihanService.findAllTagihan();
     }
 
     @GetMapping(value = "/viewAll/{pasien}")
-    private List<TagihanModel> retrieveListTagihanOfPasien(@PathVariable("pasien") String pasien) {
-        log.info("User accessed all Tagihan for Pasien " + pasien + ".");
+    private List<TagihanModel> retrieveListTagihanOfPasien(@PathVariable("pasien") String pasien, Authentication authentication) {
+        log.info(authentication.getName() + " accessed all Tagihan for Pasien " + pasien + ".");
         return tagihanService.findTagihanOfPasien(pasien);
     }
 
     @PutMapping(value = "/pay/{pasien}/{tagihan}")
-    private TagihanModel updateTagihan(@PathVariable("pasien") String pasien, @PathVariable String tagihan) {
-        log.info("User update Tagihan " + tagihan + ".");
+    private TagihanModel updateTagihan(@PathVariable("pasien") String pasien, @PathVariable String tagihan, Authentication authentication) {
+        log.info(authentication.getName() + " update Tagihan " + tagihan + ".");
         return tagihanService.payTagihan(pasien, tagihan);
     }
 }
diff --git a/rumahSehat_mobile/android/local.properties b/rumahSehat_mobile/android/local.properties
index 254f92b..264303e 100644
--- a/rumahSehat_mobile/android/local.properties
+++ b/rumahSehat_mobile/android/local.properties
@@ -1,6 +1,6 @@
-sdk.dir=C:\\Users\\aherm\\AppData\\Local\\Android\\sdk
+sdk.dir=/Users/davidjohan/Library/Android/sdk
 =======
-flutter.sdk=C:\\flutter
+flutter.sdk=/Users/davidjohan/Developer/flutter
 flutter.buildMode=debug
 flutter.versionName=1.0.0
 flutter.versionCode=1
\ No newline at end of file
-- 
GitLab