Skip to content

2.0.1 - Major Terminology Update and Multitenancy Support with Overloading

Compare
Choose a tag to compare
@ivanwilliammd ivanwilliammd released this 22 Mar 17:27
· 112 commits to main since this release

v2.0.x by @ivanwilliammd :

  • Splitted terminology model
  • Added new migration database, and seeder
  • Expanded Practitioner GET Model
  • Updated satusehat config file to support multitenancy with overloading in Controller using http://github.com/mpociot/teamwork package

Example of overloaded BaseController in Laravel 8+:

<?php

namespace App\Http\Controllers\Satusehat;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;

// Auth
use Illuminate\Support\Facades\Auth;

class BaseController extends Controller
{
    //

    public function overrideEnvironment($ss_oauth2){

        $this->currentTeam= Auth::user()->currentTeam;
        $ss_oauth2->satusehat_env = $this->currentTeam->ss_environment;

        // Override construct parameter
        if($this->currentTeam){
            if($ss_oauth2->satusehat_env == 'PROD'){
                $ss_oauth2->auth_url = getenv('SATUSEHAT_AUTH_PROD', 'https://api-satusehat.kemkes.go.id/oauth2/v1');
                $ss_oauth2->base_url = getenv('SATUSEHAT_FHIR_PROD', 'https://api-satusehat.kemkes.go.id/fhir-r4/v1');
                $ss_oauth2->client_id = $this->currentTeam->ss_prod_client_id;
                $ss_oauth2->client_secret = $this->currentTeam->ss_prod_client_secret;
                $ss_oauth2->organization_id = $this->currentTeam->ss_prod_organization_id;
            } elseif($ss_oauth2->satusehat_env == 'STG'){
                $ss_oauth2->auth_url = getenv('SATUSEHAT_AUTH_STG', 'https://api-satusehat-stg.dto.kemkes.go.id/oauth2/v1');
                $ss_oauth2->base_url = getenv('SATUSEHAT_FHIR_STG', 'https://api-satusehat-stg.dto.kemkes.go.id/fhir-r4/v1');
                $ss_oauth2->client_id = $this->currentTeam->ss_stg_client_id;
                $ss_oauth2->client_secret = $this->currentTeam->ss_stg_client_secret;
                $ss_oauth2->organization_id = $this->currentTeam->ss_stg_organization_id;
            } elseif($ss_oauth2->satusehat_env == 'DEV'){
                $ss_oauth2->auth_url = getenv('SATUSEHAT_AUTH_DEV', 'https://api-satusehat-dev.dto.kemkes.go.id/oauth2/v1');
                $ss_oauth2->base_url = getenv('SATUSEHAT_FHIR_DEV', 'https://api-satusehat-dev.dto.kemkes.go.id/fhir-r4/v1');
                $ss_oauth2->client_id = $this->currentTeam->ss_dev_client_id;
                $ss_oauth2->client_secret = $this->currentTeam->ss_dev_client_secret;
                $ss_oauth2->organization_id = $this->currentTeam->ss_dev_organization_id;
            } else {
                return redirect()->route('admin.home')->withDanger('Anda belum menambahkan settingan environment SATUSEHAT pada Database.');
            }
        }

        return $ss_oauth2;
    }
}