44 "context"
55 "encoding/json"
66 "fmt"
7- "reflect"
87 "strings"
98 "time"
109
@@ -27,8 +26,8 @@ func (p *provider) AddEmailTemplate(ctx context.Context, emailTemplate *schemas.
2726 if existingEmailTemplate != nil {
2827 return nil , fmt .Errorf ("email template with %s event_name already exists" , emailTemplate .EventName )
2928 }
30- insertQuery := fmt .Sprintf ("INSERT INTO %s (id, event_name, subject, design, template, created_at, updated_at) VALUES ('%s', '%s', '%s','%s','%s', %d, %d )" , KeySpace + "." + schemas .Collections .EmailTemplate , emailTemplate . ID , emailTemplate . EventName , emailTemplate . Subject , emailTemplate . Design , emailTemplate . Template , emailTemplate . CreatedAt , emailTemplate . UpdatedAt )
31- err := p .db .Query (insertQuery ).Exec ()
29+ insertQuery := fmt .Sprintf ("INSERT INTO %s (id, event_name, subject, design, template, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ? )" , KeySpace + "." + schemas .Collections .EmailTemplate )
30+ err := p .db .Query (insertQuery , emailTemplate . ID , emailTemplate . EventName , emailTemplate . Subject , emailTemplate . Design , emailTemplate . Template , emailTemplate . CreatedAt , emailTemplate . UpdatedAt ).Exec ()
3231 if err != nil {
3332 return nil , err
3433 }
@@ -50,7 +49,9 @@ func (p *provider) UpdateEmailTemplate(ctx context.Context, emailTemplate *schem
5049 if err != nil {
5150 return nil , err
5251 }
52+ convertMapValues (emailTemplateMap )
5353 updateFields := ""
54+ var updateValues []interface {}
5455 for key , value := range emailTemplateMap {
5556 if key == "_id" {
5657 continue
@@ -62,18 +63,15 @@ func (p *provider) UpdateEmailTemplate(ctx context.Context, emailTemplate *schem
6263 updateFields += fmt .Sprintf ("%s = null," , key )
6364 continue
6465 }
65- valueType := reflect .TypeOf (value )
66- if valueType .Name () == "string" {
67- updateFields += fmt .Sprintf ("%s = '%s', " , key , value .(string ))
68- } else {
69- updateFields += fmt .Sprintf ("%s = %v, " , key , value )
70- }
66+ updateFields += fmt .Sprintf ("%s = ?, " , key )
67+ updateValues = append (updateValues , value )
7168 }
7269 updateFields = strings .Trim (updateFields , " " )
7370 updateFields = strings .TrimSuffix (updateFields , "," )
7471
75- query := fmt .Sprintf ("UPDATE %s SET %s WHERE id = '%s'" , KeySpace + "." + schemas .Collections .EmailTemplate , updateFields , emailTemplate .ID )
76- err = p .db .Query (query ).Exec ()
72+ updateValues = append (updateValues , emailTemplate .ID )
73+ query := fmt .Sprintf ("UPDATE %s SET %s WHERE id = ?" , KeySpace + "." + schemas .Collections .EmailTemplate , updateFields )
74+ err = p .db .Query (query , updateValues ... ).Exec ()
7775 if err != nil {
7876 return nil , err
7977 }
@@ -116,8 +114,8 @@ func (p *provider) ListEmailTemplate(ctx context.Context, pagination *model.Pagi
116114// GetEmailTemplateByID to get EmailTemplate by id
117115func (p * provider ) GetEmailTemplateByID (ctx context.Context , emailTemplateID string ) (* schemas.EmailTemplate , error ) {
118116 var emailTemplate schemas.EmailTemplate
119- query := fmt .Sprintf (`SELECT id, event_name, subject, design, template, created_at, updated_at FROM %s WHERE id = '%s' LIMIT 1` , KeySpace + "." + schemas .Collections .EmailTemplate , emailTemplateID )
120- err := p .db .Query (query ).Consistency (gocql .One ).Scan (& emailTemplate .ID , & emailTemplate .EventName , & emailTemplate .Subject , & emailTemplate .Design , & emailTemplate .Template , & emailTemplate .CreatedAt , & emailTemplate .UpdatedAt )
117+ query := fmt .Sprintf (`SELECT id, event_name, subject, design, template, created_at, updated_at FROM %s WHERE id = ? LIMIT 1` , KeySpace + "." + schemas .Collections .EmailTemplate )
118+ err := p .db .Query (query , emailTemplateID ).Consistency (gocql .One ).Scan (& emailTemplate .ID , & emailTemplate .EventName , & emailTemplate .Subject , & emailTemplate .Design , & emailTemplate .Template , & emailTemplate .CreatedAt , & emailTemplate .UpdatedAt )
121119 if err != nil {
122120 return nil , err
123121 }
@@ -127,8 +125,8 @@ func (p *provider) GetEmailTemplateByID(ctx context.Context, emailTemplateID str
127125// GetEmailTemplateByEventName to get EmailTemplate by event_name
128126func (p * provider ) GetEmailTemplateByEventName (ctx context.Context , eventName string ) (* schemas.EmailTemplate , error ) {
129127 var emailTemplate schemas.EmailTemplate
130- query := fmt .Sprintf (`SELECT id, event_name, subject, design, template, created_at, updated_at FROM %s WHERE event_name = '%s' LIMIT 1 ALLOW FILTERING` , KeySpace + "." + schemas .Collections .EmailTemplate , eventName )
131- err := p .db .Query (query ).Consistency (gocql .One ).Scan (& emailTemplate .ID , & emailTemplate .EventName , & emailTemplate .Subject , & emailTemplate .Design , & emailTemplate .Template , & emailTemplate .CreatedAt , & emailTemplate .UpdatedAt )
128+ query := fmt .Sprintf (`SELECT id, event_name, subject, design, template, created_at, updated_at FROM %s WHERE event_name = ? LIMIT 1 ALLOW FILTERING` , KeySpace + "." + schemas .Collections .EmailTemplate )
129+ err := p .db .Query (query , eventName ).Consistency (gocql .One ).Scan (& emailTemplate .ID , & emailTemplate .EventName , & emailTemplate .Subject , & emailTemplate .Design , & emailTemplate .Template , & emailTemplate .CreatedAt , & emailTemplate .UpdatedAt )
132130 if err != nil {
133131 return nil , err
134132 }
@@ -137,8 +135,8 @@ func (p *provider) GetEmailTemplateByEventName(ctx context.Context, eventName st
137135
138136// DeleteEmailTemplate to delete EmailTemplate
139137func (p * provider ) DeleteEmailTemplate (ctx context.Context , emailTemplate * schemas.EmailTemplate ) error {
140- query := fmt .Sprintf ("DELETE FROM %s WHERE id = '%s' " , KeySpace + "." + schemas .Collections .EmailTemplate , emailTemplate . ID )
141- err := p .db .Query (query ).Exec ()
138+ query := fmt .Sprintf ("DELETE FROM %s WHERE id = ? " , KeySpace + "." + schemas .Collections .EmailTemplate )
139+ err := p .db .Query (query , emailTemplate . ID ).Exec ()
142140 if err != nil {
143141 return err
144142 }
0 commit comments