fix: update user plan and rearrange structur project
This commit is contained in:
@@ -7,7 +7,7 @@ import (
|
||||
redisaccessor "legalgo-BE-go/internal/accessor/redis"
|
||||
staffrepository "legalgo-BE-go/internal/accessor/staff"
|
||||
subscriberepository "legalgo-BE-go/internal/accessor/subscribe"
|
||||
subscribeplanrepository "legalgo-BE-go/internal/accessor/subscribeplan"
|
||||
subscribeplanrepository "legalgo-BE-go/internal/accessor/subscribe_plan"
|
||||
tagrepository "legalgo-BE-go/internal/accessor/tag"
|
||||
userrepository "legalgo-BE-go/internal/accessor/user"
|
||||
|
||||
|
||||
@@ -6,13 +6,13 @@ import (
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
func (s *SubsAccs) Create(subsPlanId string) (string, error) {
|
||||
func (s *accessor) Create(subsPlanId string) (string, error) {
|
||||
spec := &subscribedomain.Subscribe{
|
||||
ID: uuid.NewString(),
|
||||
SubscribePlanID: subsPlanId,
|
||||
}
|
||||
|
||||
if err := s.DB.Create(&spec).Error; err != nil {
|
||||
if err := s.db.Create(&spec).Error; err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
|
||||
@@ -3,15 +3,15 @@ package subscriberepository
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"legalgo-BE-go/database"
|
||||
subscribedomain "legalgo-BE-go/internal/domain/subscribe"
|
||||
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
func (s *SubsAccs) GetByID(id string) (database.Subscribe, error) {
|
||||
var subscribe database.Subscribe
|
||||
func (s *accessor) GetByID(id string) (subscribedomain.Subscribe, error) {
|
||||
var subscribe subscribedomain.Subscribe
|
||||
|
||||
if err := s.DB.First(&subscribe, "id = ?", id).Error; err != nil {
|
||||
if err := s.db.First(&subscribe, "id = ?", id).Error; err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
return subscribe, fmt.Errorf("subscribe data not found: %v", err)
|
||||
}
|
||||
|
||||
@@ -1,17 +1,20 @@
|
||||
package subscriberepository
|
||||
|
||||
import "legalgo-BE-go/database"
|
||||
import (
|
||||
"legalgo-BE-go/database"
|
||||
subscribedomain "legalgo-BE-go/internal/domain/subscribe"
|
||||
)
|
||||
|
||||
type SubsAccs struct {
|
||||
DB *database.DB
|
||||
type accessor struct {
|
||||
db *database.DB
|
||||
}
|
||||
|
||||
type SubsIntf interface {
|
||||
type Subscribe interface {
|
||||
Create(string) (string, error)
|
||||
GetByID(string) (database.Subscribe, error)
|
||||
UpdateSubscribeStatus(database.Subscribe) error
|
||||
GetByID(string) (subscribedomain.Subscribe, error)
|
||||
Update(subscribedomain.Subscribe) error
|
||||
}
|
||||
|
||||
func New(db *database.DB) SubsIntf {
|
||||
return &SubsAccs{db}
|
||||
func New(db *database.DB) Subscribe {
|
||||
return &accessor{db}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
package subscriberepository
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
subscribedomain "legalgo-BE-go/internal/domain/subscribe"
|
||||
|
||||
"gorm.io/gorm/clause"
|
||||
)
|
||||
|
||||
func (a *accessor) Update(spec subscribedomain.Subscribe) error {
|
||||
if err := a.db.Clauses(clause.OnConflict{
|
||||
Columns: []clause.Column{{Name: "id"}},
|
||||
DoUpdates: clause.AssignmentColumns([]string{"status", "subscribe_plan_id", "start_date"}),
|
||||
}).Create(&spec).Error; err != nil {
|
||||
return fmt.Errorf("failed to update status: %v", err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
package subscriberepository
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"legalgo-BE-go/database"
|
||||
|
||||
"gorm.io/gorm/clause"
|
||||
)
|
||||
|
||||
func (a *SubsAccs) UpdateSubscribeStatus(spec database.Subscribe) error {
|
||||
if err := a.DB.Clauses(clause.OnConflict{
|
||||
Columns: []clause.Column{{Name: "id"}},
|
||||
DoUpdates: clause.AssignmentColumns([]string{"status"}),
|
||||
}).Create(&spec).Error; err != nil {
|
||||
return fmt.Errorf("failed to update status: %v", err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package subscribeplanrepository
|
||||
|
||||
import (
|
||||
subscribeplandomain "legalgo-BE-go/internal/domain/subscribe_plan"
|
||||
)
|
||||
|
||||
func (s *accessor) Create(spec subscribeplandomain.SubscribePlan) error {
|
||||
if err := s.db.Create(&spec).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package subscribeplanrepository
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"legalgo-BE-go/database"
|
||||
subscribedomain "legalgo-BE-go/internal/domain/subscribe"
|
||||
subscribeplandomain "legalgo-BE-go/internal/domain/subscribe_plan"
|
||||
)
|
||||
|
||||
func (a *accessor) Delete(id string) error {
|
||||
var subsPlan database.SubscribePlan
|
||||
var basicPlan subscribeplandomain.SubscribePlan
|
||||
|
||||
if err := a.db.First(&basicPlan, "code = ?", "basic").Error; err != nil {
|
||||
return fmt.Errorf("failed to find basic plan: %v", err)
|
||||
}
|
||||
|
||||
if err := a.db.
|
||||
Model(&subscribedomain.Subscribe{}).
|
||||
Where("subscribe_plan_id = ?", id).
|
||||
Update("subscribe_plan_id", basicPlan.ID); err != nil {
|
||||
return fmt.Errorf("failed to change subscribe plan: %v", err)
|
||||
}
|
||||
|
||||
if err := a.db.Where("id = ?", id).Delete(&subsPlan).Error; err != nil {
|
||||
return fmt.Errorf("failed to delete subscribe plan %s : %v", id, err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
+2
-2
@@ -4,10 +4,10 @@ import (
|
||||
subscribeplandomain "legalgo-BE-go/internal/domain/subscribe_plan"
|
||||
)
|
||||
|
||||
func (s *SubsPlan) GetAll() ([]subscribeplandomain.SubscribePlan, error) {
|
||||
func (s *accessor) GetAll() ([]subscribeplandomain.SubscribePlan, error) {
|
||||
var subscribePlans []subscribeplandomain.SubscribePlan
|
||||
|
||||
if err := s.DB.Find(&subscribePlans).Error; err != nil {
|
||||
if err := s.db.Find(&subscribePlans).Error; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
package subscribeplanrepository
|
||||
|
||||
import (
|
||||
"errors"
|
||||
subscribeplandomain "legalgo-BE-go/internal/domain/subscribe_plan"
|
||||
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
func (s *accessor) GetByID(id string) (*subscribeplandomain.SubscribePlan, error) {
|
||||
var subscribePlan *subscribeplandomain.SubscribePlan
|
||||
|
||||
if err := s.db.First(&subscribePlan, "id = ? ", id).Error; err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
return subscribePlan, errors.New("subscribe plan not found")
|
||||
}
|
||||
return subscribePlan, err
|
||||
}
|
||||
|
||||
return subscribePlan, nil
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package subscribeplanrepository
|
||||
|
||||
import (
|
||||
"legalgo-BE-go/database"
|
||||
subscribeplandomain "legalgo-BE-go/internal/domain/subscribe_plan"
|
||||
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
func (s *accessor) GetDefault() (*subscribeplandomain.SubscribePlan, error) {
|
||||
var subscribePlan *subscribeplandomain.SubscribePlan
|
||||
|
||||
if err := s.db.First(&subscribePlan, "code = ?", "basic").Error; err != nil {
|
||||
s.db.Create(&database.SubscribePlan{
|
||||
ID: uuid.NewString(),
|
||||
Code: "basic",
|
||||
Name: "Basic",
|
||||
})
|
||||
}
|
||||
|
||||
return subscribePlan, nil
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package subscribeplanrepository
|
||||
|
||||
import (
|
||||
"legalgo-BE-go/database"
|
||||
subscribeplandomain "legalgo-BE-go/internal/domain/subscribe_plan"
|
||||
)
|
||||
|
||||
type accessor struct {
|
||||
db *database.DB
|
||||
}
|
||||
|
||||
type SubscribePlan interface {
|
||||
Create(subscribeplandomain.SubscribePlan) error
|
||||
GetAll() ([]subscribeplandomain.SubscribePlan, error)
|
||||
GetByID(string) (*subscribeplandomain.SubscribePlan, error)
|
||||
GetDefault() (*subscribeplandomain.SubscribePlan, error)
|
||||
Update(subscribeplandomain.SubscribePlan) error
|
||||
Delete(string) error
|
||||
}
|
||||
|
||||
func New(
|
||||
db *database.DB,
|
||||
) SubscribePlan {
|
||||
return &accessor{db}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package subscribeplanrepository
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
subscribeplandomain "legalgo-BE-go/internal/domain/subscribe_plan"
|
||||
|
||||
"gorm.io/gorm/clause"
|
||||
)
|
||||
|
||||
func (a *accessor) Update(spec subscribeplandomain.SubscribePlan) error {
|
||||
if err := a.db.Clauses(clause.OnConflict{
|
||||
Columns: []clause.Column{{Name: "id"}},
|
||||
DoUpdates: clause.AssignmentColumns([]string{
|
||||
"name",
|
||||
"code",
|
||||
"updated_at",
|
||||
}),
|
||||
}).Select("name", "code", "updated_at").Save(&spec).Error; err != nil {
|
||||
return fmt.Errorf("failed to update tag: %v", err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
package subscribeplanrepository
|
||||
|
||||
import (
|
||||
subscribeplandomain "legalgo-BE-go/internal/domain/subscribe_plan"
|
||||
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
func (s *SubsPlan) Create(spec subscribeplandomain.SubscribePlanReq) error {
|
||||
data := &subscribeplandomain.SubscribePlan{
|
||||
ID: uuid.NewString(),
|
||||
Code: spec.Code,
|
||||
Name: spec.Name,
|
||||
}
|
||||
|
||||
if err := s.DB.Create(&data).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
package subscribeplanrepository
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"legalgo-BE-go/database"
|
||||
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
func (s *SubsPlan) GetByID(id string) (*database.SubscribePlan, error) {
|
||||
var subscribePlan *database.SubscribePlan
|
||||
|
||||
if err := s.DB.First(&subscribePlan, "id = ? ", id).Error; err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
return subscribePlan, errors.New("subscribe plan not found")
|
||||
}
|
||||
return subscribePlan, err
|
||||
}
|
||||
|
||||
return subscribePlan, nil
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
package subscribeplanrepository
|
||||
|
||||
import (
|
||||
"legalgo-BE-go/database"
|
||||
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
func (s *SubsPlan) GetDefault() (*database.SubscribePlan, error) {
|
||||
var subscribePlan *database.SubscribePlan
|
||||
|
||||
if err := s.DB.First(&subscribePlan, "code = ?", "basic").Error; err != nil {
|
||||
s.DB.Create(&database.SubscribePlan{
|
||||
ID: uuid.NewString(),
|
||||
Code: "basic",
|
||||
Name: "Basic",
|
||||
})
|
||||
}
|
||||
|
||||
return subscribePlan, nil
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
package subscribeplanrepository
|
||||
|
||||
import (
|
||||
"legalgo-BE-go/database"
|
||||
subscribeplandomain "legalgo-BE-go/internal/domain/subscribe_plan"
|
||||
)
|
||||
|
||||
type SubsPlan struct {
|
||||
DB *database.DB
|
||||
}
|
||||
|
||||
type SubsPlanIntf interface {
|
||||
Create(subscribeplandomain.SubscribePlanReq) error
|
||||
GetAll() ([]subscribeplandomain.SubscribePlan, error)
|
||||
GetByID(string) (*database.SubscribePlan, error)
|
||||
GetDefault() (*database.SubscribePlan, error)
|
||||
}
|
||||
|
||||
func New(
|
||||
db *database.DB,
|
||||
) SubsPlanIntf {
|
||||
return &SubsPlan{db}
|
||||
}
|
||||
Reference in New Issue
Block a user