Fix update patient

This commit is contained in:
poetrasapoetra
2025-11-28 19:43:53 +07:00
parent 214bbb0e4a
commit 6a49f09180
2 changed files with 22 additions and 9 deletions

No files matched your search

@@ -89,6 +89,7 @@ type MPasienDto struct {
func (mp MPasienDto) ToPatient() e.Patient { func (mp MPasienDto) ToPatient() e.Patient {
patient := e.Patient{ patient := e.Patient{
// TODO get patient person_id from database
Person_Id: &mp.Id, Person_Id: &mp.Id,
NewBornStatus: mp.ParentNomr != nil, NewBornStatus: mp.ParentNomr != nil,
RegisteredAt: parseTimeDateOnly(mp.Tgldaftar), RegisteredAt: parseTimeDateOnly(mp.Tgldaftar),
@@ -115,7 +116,7 @@ func (mp MPasienDto) ToPatient() e.Patient {
BirthDate: parseTimeDateOnly(mp.Tgllahir), BirthDate: parseTimeDateOnly(mp.Tgllahir),
BirthRegency_Code: &bc, BirthRegency_Code: &bc,
Gender_Code: &gc, Gender_Code: &gc,
ResidentIdentityNumber: nilEmptyString(*mp.Nip), ResidentIdentityNumber: nilEmptyString(mp.Noktp),
PassportNumber: nilEmptyString(*mp.Paspor), PassportNumber: nilEmptyString(*mp.Paspor),
DrivingLicenseNumber: nilEmptyString(*mp.Sim), DrivingLicenseNumber: nilEmptyString(*mp.Sim),
Religion_Code: &rc, Religion_Code: &rc,
@@ -4,6 +4,7 @@ import (
"bytes" "bytes"
"encoding/json" "encoding/json"
"fmt" "fmt"
"io"
"net/http" "net/http"
p "simrs-vx/internal/domain/simgos-entities/m-pasien" p "simrs-vx/internal/domain/simgos-entities/m-pasien"
@@ -16,8 +17,6 @@ type myBase struct{}
var O myBase var O myBase
const baseUrl string = "http://localhost:8000/v1/"
func (obj myBase) Create(w http.ResponseWriter, r *http.Request) { func (obj myBase) Create(w http.ResponseWriter, r *http.Request) {
dto := p.MPasienDto{} dto := p.MPasienDto{}
if !rw.ValidateStructByIOR(w, r.Body, &dto) { if !rw.ValidateStructByIOR(w, r.Body, &dto) {
@@ -32,7 +31,7 @@ func (obj myBase) Create(w http.ResponseWriter, r *http.Request) {
// fmt.Println(string(jsonPatient)) // fmt.Println(string(jsonPatient))
// kirim request ke api sim-baru // kirim request ke api sim-baru
reqBody := bytes.NewBuffer(jsonPatient) reqBody := bytes.NewBuffer(jsonPatient)
err = send(http.MethodPost, baseUrl+"patient", reqBody) err = send(http.MethodPost, "patient", reqBody)
if err != nil { if err != nil {
fmt.Println("request error:", err) fmt.Println("request error:", err)
} }
@@ -44,12 +43,21 @@ func (obj myBase) Update(w http.ResponseWriter, r *http.Request) {
return return
} }
patient := dto.ToPatient() patient := dto.ToPatient()
jsonPatient, err := json.Marshal(patient) // TODO DELETE BELOW,
var (
personId uint = 68
patientId uint = 34
)
patient.Person_Id = &personId
patient.Id = patientId
patient.Person.Id = personId
// TODO DELETE ABOVE
jsonPatient, err := json.MarshalIndent(patient, "", " ")
if err != nil { if err != nil {
fmt.Println(err) fmt.Println(err)
} }
// fmt.Println(string(jsonPatient)) fmt.Println(string(jsonPatient))
url := fmt.Sprintf("%s%s%v", baseUrl, "patient/", *patient.Person_Id) url := fmt.Sprintf("%s%v", "patient/", patient.Id)
fmt.Println(url) fmt.Println(url)
reqBody := bytes.NewBuffer(jsonPatient) reqBody := bytes.NewBuffer(jsonPatient)
err = send(http.MethodPatch, url, reqBody) err = send(http.MethodPatch, url, reqBody)
@@ -68,7 +76,7 @@ func (obj myBase) Delete(w http.ResponseWriter, r *http.Request) {
fmt.Println(err) fmt.Println(err)
} }
reqBody := bytes.NewBuffer(jsonPatient) reqBody := bytes.NewBuffer(jsonPatient)
err = send(http.MethodDelete, fmt.Sprintf("%s%s%v", baseUrl, "patient/", *patient.Person_Id), reqBody) err = send(http.MethodDelete, fmt.Sprintf("%s%v", "patient/", *patient.Person_Id), reqBody)
if err != nil { if err != nil {
fmt.Println("request error:", err) fmt.Println("request error:", err)
} }
@@ -77,7 +85,8 @@ func (obj myBase) CreateLog(w http.ResponseWriter, r *http.Request) {
} }
func send(method string, url string, body *bytes.Buffer) error { func send(method string, endpoint string, body *bytes.Buffer) error {
var url string = cfg.O.NewHost + endpoint
req, err := http.NewRequest(method, url, body) req, err := http.NewRequest(method, url, body)
if err != nil { if err != nil {
return err return err
@@ -85,10 +94,13 @@ func send(method string, url string, body *bytes.Buffer) error {
req.Header.Set("Content-Type", "application/json") req.Header.Set("Content-Type", "application/json")
req.Header.Set("X-Sync-Source", cfg.O.OldSource) req.Header.Set("X-Sync-Source", cfg.O.OldSource)
req.Header.Set("X-Sync-SecretKey", cfg.O.NewSecretKey) req.Header.Set("X-Sync-SecretKey", cfg.O.NewSecretKey)
req.Header.Set("X-Sync-UserName", "dave")
resp, err := http.DefaultClient.Do(req) resp, err := http.DefaultClient.Do(req)
if err != nil { if err != nil {
return err return err
} }
defer resp.Body.Close() defer resp.Body.Close()
respBody, _ := io.ReadAll(resp.Body)
fmt.Println(resp.StatusCode, string(respBody), method, url)
return nil return nil
} }