fix postgresql issues
This commit is contained in:
parent
9e2b9251db
commit
6ecc05ba0b
42
config.go
42
config.go
|
@ -7,7 +7,49 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func ReadConfig() (*viper.Viper, error) {
|
func ReadConfig() (*viper.Viper, error) {
|
||||||
|
|
||||||
|
defaults := map[string]any{
|
||||||
|
"name": "COOPGO Carpool Incentives",
|
||||||
|
"dev_env": false,
|
||||||
|
"storage": map[string]any{
|
||||||
|
"db": map[string]any{
|
||||||
|
"type": "psql",
|
||||||
|
"mongodb": map[string]any{
|
||||||
|
"host": "localhost",
|
||||||
|
"port": 27017,
|
||||||
|
"db_name": "coopgo_platform",
|
||||||
|
"collections": map[string]string{
|
||||||
|
"incentive_subscriptions": "carpool_incentive_subscriptions",
|
||||||
|
"proofs": "carpool_proofs",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"psql": map[string]any{
|
||||||
|
"host": "localhost",
|
||||||
|
"port": 5432,
|
||||||
|
"user": "postgres",
|
||||||
|
"password": "postgres",
|
||||||
|
"dbname": "coopgo_platform",
|
||||||
|
"schema": "carpool_incentives",
|
||||||
|
"sslmode": "disable",
|
||||||
|
"tables": map[string]string{
|
||||||
|
"incentive_subscriptions": "incentive_subscriptions",
|
||||||
|
"proofs": "proofs",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"services": map[string]any{
|
||||||
|
"grpc": map[string]any{
|
||||||
|
"enable": true,
|
||||||
|
"port": 8080,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
v := viper.New()
|
v := viper.New()
|
||||||
|
for key, value := range defaults {
|
||||||
|
v.SetDefault(key, value)
|
||||||
|
}
|
||||||
v.SetConfigName("config")
|
v.SetConfigName("config")
|
||||||
v.AddConfigPath(".")
|
v.AddConfigPath(".")
|
||||||
v.SetEnvKeyReplacer(strings.NewReplacer(".", "_"))
|
v.SetEnvKeyReplacer(strings.NewReplacer(".", "_"))
|
||||||
|
|
|
@ -6,6 +6,7 @@ import (
|
||||||
|
|
||||||
"git.coopgo.io/coopgo-platform/carpool-incentives/storage"
|
"git.coopgo.io/coopgo-platform/carpool-incentives/storage"
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
|
"github.com/rs/zerolog/log"
|
||||||
"github.com/spf13/viper"
|
"github.com/spf13/viper"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -62,6 +63,7 @@ func (h *IncentivesHandler) GetAvailableIncentives(userid string) ([]storage.Inc
|
||||||
|
|
||||||
incentiveSubscriptions, err := h.Storage.GetUserSubscriptions(userid)
|
incentiveSubscriptions, err := h.Storage.GetUserSubscriptions(userid)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
log.Error().Err(err).Msg("error retrieving subscriptions")
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -87,6 +87,6 @@ func (s MongoDBStorage) SubscribeIncentive(incentive_subscription IncentiveSubsc
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (psql MongoDBStorage) Migrate() error {
|
func (s MongoDBStorage) Migrate() error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -57,10 +57,10 @@ func NewPostgresqlStorage(cfg *viper.Viper) (PostgresqlStorage, error) {
|
||||||
func (s PostgresqlStorage) GetUserSubscriptions(userid string) ([]IncentiveSubscription, error) {
|
func (s PostgresqlStorage) GetUserSubscriptions(userid string) ([]IncentiveSubscription, error) {
|
||||||
|
|
||||||
req := fmt.Sprintf(`SELECT id, incentive_id, user_id, identity_verification_ids, data, declined, subscription_datetime
|
req := fmt.Sprintf(`SELECT id, incentive_id, user_id, identity_verification_ids, data, declined, subscription_datetime
|
||||||
FROM %s
|
FROM %s WHERE user_id = $1`, s.Tables["incentive_subscriptions"])
|
||||||
WHERE user_id=$1`, s.Tables["incentive_subscriptions"])
|
|
||||||
rows, err := s.DbConnection.Query(req, userid)
|
rows, err := s.DbConnection.Query(req, userid)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
log.Error().Str("request", req).Err(err).Msg("GetUserSubscriptions query error")
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
defer rows.Close()
|
defer rows.Close()
|
||||||
|
|
|
@ -15,6 +15,7 @@ table "incentive_subscriptions" {
|
||||||
column "identity_verification_ids" {
|
column "identity_verification_ids" {
|
||||||
null = true
|
null = true
|
||||||
type = sql("text[]")
|
type = sql("text[]")
|
||||||
|
default = sql("array[]::text[]")
|
||||||
}
|
}
|
||||||
column "data" {
|
column "data" {
|
||||||
null = false
|
null = false
|
||||||
|
@ -27,6 +28,7 @@ table "incentive_subscriptions" {
|
||||||
column "subscription_datetime" {
|
column "subscription_datetime" {
|
||||||
null = true
|
null = true
|
||||||
type = timestamptz
|
type = timestamptz
|
||||||
|
default = sql("now()")
|
||||||
}
|
}
|
||||||
primary_key {
|
primary_key {
|
||||||
columns = [column.id]
|
columns = [column.id]
|
||||||
|
|
|
@ -22,6 +22,9 @@ func NewStorage(cfg *viper.Viper) (Storage, error) {
|
||||||
case "mongodb":
|
case "mongodb":
|
||||||
s, err := NewMongoDBStorage(cfg)
|
s, err := NewMongoDBStorage(cfg)
|
||||||
return s, err
|
return s, err
|
||||||
|
case "psql":
|
||||||
|
s, err := NewPostgresqlStorage(cfg)
|
||||||
|
return s, err
|
||||||
default:
|
default:
|
||||||
return nil, fmt.Errorf("storage type %v is not supported", storage_type)
|
return nil, fmt.Errorf("storage type %v is not supported", storage_type)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue