19305ef3c7b90f0287ae249e753bee01deafba33
[epayment/food_payapi.git] /
1 package com.supwisdom.multitenant.datasource.impl;
2
3 import com.supwisdom.multitenant.TenantDetails;
4 import com.supwisdom.multitenant.datasource.MultiTenantDataSourceProvider;
5 import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
6 import org.springframework.context.annotation.Configuration;
7 import org.springframework.util.StringUtils;
8
9 @Configuration
10 @ConditionalOnExpression("${spring.jpa.database-platform:postgresql}")
11 public class PostgresDataSourceProvider implements MultiTenantDataSourceProvider {
12   @Override
13   public String getTenantSQL(TenantDetails details) {
14     if (details == null || details.getDbSchema() == null
15         || StringUtils.isEmpty(details.getDbSchema())) {
16       return getDefaultSQL();
17     }
18     return String.format("set search_path \"%s\", public; ", details.getDbSchema());
19   }
20
21   @Override
22   public String getDefaultSQL() {
23     return "set search_path public;";
24   }
25 }