read by token all source

This commit is contained in:
gigihshs
2026-04-21 15:17:12 +07:00
parent 6dfc474924
commit 6b9954c735
24 changed files with 345 additions and 529 deletions
@@ -2,6 +2,7 @@ package integration
import (
"bytes"
"context"
"encoding/json"
"errors"
"fmt"
@@ -9,6 +10,7 @@ import (
"satusehat-rssa/internal/constant"
"satusehat-rssa/internal/model"
"satusehat-rssa/pkg/httputil"
"satusehat-rssa/pkg/redis"
)
type ObservationInterface interface {
@@ -36,18 +38,15 @@ func (o *ObservationRepository) GetObservationByPatientCategory(id string, categ
if err != nil {
return nil, err
}
oauth := model.OauthRequest{
ClientId: o.akses.ClientId,
ClientSecret: o.akses.ClientSecret,
}
OauthInterface := NewOauthRequestRepo(o.akses)
token, err := OauthInterface.GenerateToken(oauth)
redisRepo := redis.NewRedisAuth(o.akses)
token, err := redisRepo.GetOrCreateTokenSS(context.Background(), id)
if err != nil {
return nil, err
}
if token != nil {
request.Header.Set("Authorization", "Bearer "+token.AccessToken)
if token == "" {
return nil, errors.New(constant.ErrGenerateToken)
}
request.Header.Set("Authorization", "Bearer "+token)
request.Header.Set("Content-Type", constant.ContentTypeFHIRJSON)
res, err := client.Do(request)
if err != nil {
@@ -127,20 +126,15 @@ func (o *ObservationRepository) GetObservationByPatient(id string) (map[string]i
if err != nil {
return nil, err
}
oauth := model.OauthRequest{
ClientId: o.akses.ClientId,
ClientSecret: o.akses.ClientSecret,
}
OauthInterface := NewOauthRequestRepo(o.akses)
token, err := OauthInterface.GenerateToken(oauth)
redisRepo := redis.NewRedisAuth(o.akses)
token, err := redisRepo.GetOrCreateTokenSS(context.Background(), id)
if err != nil {
return nil, err
}
if token != nil {
request.Header.Add("Authorization", "Bearer "+token.AccessToken)
} else {
if token == "" {
return nil, errors.New(constant.ErrGenerateToken)
}
request.Header.Add("Authorization", "Bearer "+token)
request.Header.Set("Accept", constant.ContentTypeFHIRJSON)
res, err := client.Do(request)
if err != nil {
@@ -239,18 +233,15 @@ func (o *ObservationRepository) CreateObservation(req model.ObservationRequest)
return nil, err
}
oauth := model.OauthRequest{
ClientId: o.akses.ClientId,
ClientSecret: o.akses.ClientSecret,
}
OauthInterface := NewOauthRequestRepo(o.akses)
NewOauthRequestRepo(o.akses)
token, err := OauthInterface.GenerateToken(oauth)
redisRepo := redis.NewRedisAuth(o.akses)
token, err := redisRepo.GetOrCreateTokenSS(context.Background(), req.Subject.Reference)
if err != nil {
return nil, err
}
request.Header.Set("Authorization", "Bearer "+token.AccessToken)
if token == "" {
return nil, errors.New(constant.ErrGenerateToken)
}
request.Header.Set("Authorization", "Bearer "+token)
request.Header.Set("Content-Type", "application/json")
response, err := client.Do(request)
if err != nil {
@@ -318,15 +309,12 @@ func (o *ObservationRepository) UpdateObservation(req model.ObservationRequest)
}
}
oauth := model.OauthRequest{
ClientId: o.akses.ClientId,
ClientSecret: o.akses.ClientSecret,
}
token, err := NewOauthRequestRepo(o.akses).GenerateToken(oauth)
redisRepo := redis.NewRedisAuth(o.akses)
token, err := redisRepo.GetOrCreateTokenSS(context.Background(), req.Subject.Reference)
if err != nil {
return nil, err
}
if token == nil {
if token == "" {
return nil, errors.New(constant.ErrGenerateToken)
}
@@ -335,7 +323,7 @@ func (o *ObservationRepository) UpdateObservation(req model.ObservationRequest)
Method: "PUT",
URL: url,
Body: req,
BearerToken: token.AccessToken,
BearerToken: token,
})
}