Skip to content

Commit c60a078

Browse files
authored
Merge pull request #43 from abhinavxd/feat/translate-app
Translate app
2 parents 7d9650b + 013b5bf commit c60a078

File tree

172 files changed

+4114
-2324
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

172 files changed

+4114
-2324
lines changed

cmd/ai.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ func handleUpdateAIProvider(r *fastglue.Request) error {
4343
req providerUpdateReq
4444
)
4545
if err := r.Decode(&req, "json"); err != nil {
46-
return sendErrorEnvelope(r, envelope.NewError(envelope.InputError, "Error unmarshalling request", nil))
46+
return sendErrorEnvelope(r, envelope.NewError(envelope.InputError, app.i18n.Ts("globals.messages.errorParsing", "name", "{globals.terms.request}"), nil))
4747
}
4848
if err := app.ai.UpdateProvider(req.Provider, req.APIKey); err != nil {
4949
return sendErrorEnvelope(r, err)

cmd/auth.go

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,20 +22,21 @@ func handleOIDCLogin(r *fastglue.Request) error {
2222
)
2323
if err != nil {
2424
app.lo.Error("error parsing provider id", "error", err)
25-
return r.SendErrorEnvelope(fasthttp.StatusInternalServerError, "Error parsing provider id.", nil, envelope.GeneralError)
25+
return r.SendErrorEnvelope(fasthttp.StatusInternalServerError, app.i18n.Ts("globals.messages.invalid", "name", "`id`"), nil, envelope.GeneralError)
2626
}
2727

2828
// Set a state and save it in the session, to prevent CSRF attacks.
2929
state, err := stringutil.RandomAlphanumeric(32)
3030
if err != nil {
3131
app.lo.Error("error generating state", "error", err)
32-
return r.SendErrorEnvelope(fasthttp.StatusInternalServerError, "Error generating state.", nil, envelope.GeneralError)
32+
return r.SendErrorEnvelope(fasthttp.StatusInternalServerError, app.i18n.Ts("globals.messages.errorGenerating", "name", "state"), nil, envelope.GeneralError)
3333
}
34+
3435
if err = app.auth.SetSessionValues(r, map[string]interface{}{
3536
oidcStateSessKey: state,
3637
}); err != nil {
3738
app.lo.Error("error saving state in session", "error", err)
38-
return r.SendErrorEnvelope(fasthttp.StatusInternalServerError, "Error saving state in session.", nil, envelope.GeneralError)
39+
return r.SendErrorEnvelope(fasthttp.StatusInternalServerError, app.i18n.Ts("globals.messages.errorSaving", "name", "{globals.terms.session}"), nil, envelope.GeneralError)
3940
}
4041

4142
authURL, err := app.auth.LoginURL(providerID, state)
@@ -55,23 +56,24 @@ func handleOIDCCallback(r *fastglue.Request) error {
5556
)
5657
if err != nil {
5758
app.lo.Error("error parsing provider id", "error", err)
58-
return r.SendErrorEnvelope(fasthttp.StatusInternalServerError, "Error parsing provider id.", nil, envelope.GeneralError)
59+
return r.SendErrorEnvelope(fasthttp.StatusInternalServerError, app.i18n.Ts("globals.messages.invalid", "name", "`id`"), nil, envelope.GeneralError)
5960
}
6061

6162
// Compare the state from the session with the state from the query.
6263
sessionState, err := app.auth.GetSessionValue(r, oidcStateSessKey)
6364
if err != nil {
6465
app.lo.Error("error getting state from session", "error", err)
65-
return r.SendErrorEnvelope(fasthttp.StatusInternalServerError, "Error getting state from session.", nil, envelope.GeneralError)
66+
return r.SendErrorEnvelope(fasthttp.StatusInternalServerError, app.i18n.Ts("globals.messages.errorFetching", "name", "{globals.terms.session}"), nil, envelope.GeneralError)
6667
}
6768
if state != sessionState {
68-
return r.SendErrorEnvelope(fasthttp.StatusForbidden, "Invalid state.", nil, envelope.GeneralError)
69+
return r.SendErrorEnvelope(fasthttp.StatusForbidden, app.i18n.Ts("globals.messages.mismatch", "name", "{globals.terms.state}"), nil, envelope.GeneralError)
6970
}
7071

7172
_, claims, err := app.auth.ExchangeOIDCToken(r.RequestCtx, providerID, code)
7273
if err != nil {
7374
app.lo.Error("error exchanging oidc token", "error", err)
74-
return r.SendErrorEnvelope(fasthttp.StatusInternalServerError, "Error exchanging OIDC token.", nil, envelope.GeneralError)
75+
return r.SendErrorEnvelope(fasthttp.StatusInternalServerError,
76+
app.i18n.T("globals.messages.errorExchangingToken"), nil, envelope.GeneralError)
7577
}
7678

7779
// Lookup the user by email and set the session.
@@ -86,7 +88,8 @@ func handleOIDCCallback(r *fastglue.Request) error {
8688
FirstName: user.FirstName,
8789
LastName: user.LastName,
8890
}, r); err != nil {
89-
return r.SendErrorEnvelope(fasthttp.StatusInternalServerError, "Error saving session.", nil, envelope.GeneralError)
91+
return r.SendErrorEnvelope(fasthttp.StatusInternalServerError,
92+
app.i18n.Ts("globals.messages.errorSaving", "name", "{globals.terms.session}"), nil, envelope.GeneralError)
9093
}
9194

9295
return r.Redirect("/", fasthttp.StatusFound, nil, "")

cmd/automation.go

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ func handleToggleAutomationRule(r *fastglue.Request) error {
4444
if err := app.automation.ToggleRule(id); err != nil {
4545
return sendErrorEnvelope(r, err)
4646
}
47-
return r.SendEnvelope("Rule toggled successfully")
47+
return r.SendEnvelope(true)
4848
}
4949

5050
// handleUpdateAutomationRule updates an automation rule
@@ -55,18 +55,17 @@ func handleUpdateAutomationRule(r *fastglue.Request) error {
5555
id, err = strconv.Atoi(r.RequestCtx.UserValue("id").(string))
5656
)
5757
if err != nil || id == 0 {
58-
return r.SendErrorEnvelope(fasthttp.StatusBadRequest,
59-
"Invalid rule `id`.", nil, envelope.InputError)
58+
return r.SendErrorEnvelope(fasthttp.StatusBadRequest, app.i18n.Ts("globals.messages.invalid", "name", "`id`"), nil, envelope.InputError)
6059
}
6160

6261
if err := r.Decode(&rule, "json"); err != nil {
63-
return r.SendErrorEnvelope(fasthttp.StatusBadRequest, "decode failed", nil, envelope.InputError)
62+
return r.SendErrorEnvelope(fasthttp.StatusBadRequest, app.i18n.Ts("globals.messages.errorParsing", "name", "{globals.terms.request}"), nil, envelope.InputError)
6463
}
6564

66-
if err = app.automation.UpdateRule(id, rule);err != nil {
65+
if err = app.automation.UpdateRule(id, rule); err != nil {
6766
return sendErrorEnvelope(r, err)
6867
}
69-
return r.SendEnvelope("Rule updated successfully")
68+
return r.SendEnvelope(true)
7069
}
7170

7271
// handleCreateAutomationRule creates a new automation rule
@@ -76,12 +75,12 @@ func handleCreateAutomationRule(r *fastglue.Request) error {
7675
rule = amodels.RuleRecord{}
7776
)
7877
if err := r.Decode(&rule, "json"); err != nil {
79-
return r.SendErrorEnvelope(fasthttp.StatusBadRequest, "decode failed", nil, envelope.InputError)
78+
return r.SendErrorEnvelope(fasthttp.StatusBadRequest, app.i18n.Ts("globals.messages.errorParsing", "name", "{globals.terms.request}"), nil, envelope.InputError)
8079
}
8180
if err := app.automation.CreateRule(rule); err != nil {
8281
return sendErrorEnvelope(r, err)
8382
}
84-
return r.SendEnvelope("Rule created successfully")
83+
return r.SendEnvelope(true)
8584
}
8685

8786
// handleDeleteAutomationRule deletes an automation rule
@@ -92,15 +91,12 @@ func handleDeleteAutomationRule(r *fastglue.Request) error {
9291
id, err = strconv.Atoi(r.RequestCtx.UserValue("id").(string))
9392
)
9493
if err != nil || id == 0 {
95-
return r.SendErrorEnvelope(fasthttp.StatusBadRequest,
96-
"Invalid rule `id`.", nil, envelope.InputError)
94+
return r.SendErrorEnvelope(fasthttp.StatusBadRequest, app.i18n.Ts("globals.messages.invalid", "name", "`id`"), nil, envelope.InputError)
9795
}
98-
99-
err = app.automation.DeleteRule(id)
100-
if err != nil {
96+
if err = app.automation.DeleteRule(id); err != nil {
10197
return sendErrorEnvelope(r, err)
10298
}
103-
return r.SendEnvelope("Rule deleted successfully")
99+
return r.SendEnvelope(true)
104100
}
105101

106102
// handleUpdateAutomationRuleWeights updates the weights of the automation rules
@@ -110,13 +106,13 @@ func handleUpdateAutomationRuleWeights(r *fastglue.Request) error {
110106
weights = make(map[int]int)
111107
)
112108
if err := r.Decode(&weights, "json"); err != nil {
113-
return r.SendErrorEnvelope(fasthttp.StatusBadRequest, "decode failed", nil, envelope.InputError)
109+
return r.SendErrorEnvelope(fasthttp.StatusBadRequest, app.i18n.Ts("globals.messages.errorParsing", "name", "{globals.terms.request}"), nil, envelope.InputError)
114110
}
115111
err := app.automation.UpdateRuleWeights(weights)
116112
if err != nil {
117113
return sendErrorEnvelope(r, err)
118114
}
119-
return r.SendEnvelope("Weights updated successfully")
115+
return r.SendEnvelope(true)
120116
}
121117

122118
// handleUpdateAutomationRuleExecutionMode updates the execution mode of the automation rules for a given type
@@ -126,11 +122,11 @@ func handleUpdateAutomationRuleExecutionMode(r *fastglue.Request) error {
126122
mode = string(r.RequestCtx.PostArgs().Peek("mode"))
127123
)
128124
if mode != amodels.ExecutionModeAll && mode != amodels.ExecutionModeFirstMatch {
129-
return r.SendErrorEnvelope(fasthttp.StatusBadRequest, "Invalid execution mode", nil, envelope.InputError)
125+
return r.SendErrorEnvelope(fasthttp.StatusBadRequest, app.i18n.T("automation.invalidRuleExecutionMode"), nil, envelope.InputError)
130126
}
131127
// Only new conversation rules can be updated as they are the only ones that have execution mode.
132128
if err := app.automation.UpdateRuleExecutionMode(amodels.RuleTypeNewConversation, mode); err != nil {
133129
return sendErrorEnvelope(r, err)
134130
}
135-
return r.SendEnvelope("Execution mode updated successfully")
131+
return r.SendEnvelope(true)
136132
}

cmd/business_hours.go

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,14 @@ func handleGetBusinessHour(r *fastglue.Request) error {
2929
)
3030
id, err := strconv.Atoi(r.RequestCtx.UserValue("id").(string))
3131
if err != nil || id == 0 {
32-
return r.SendErrorEnvelope(fasthttp.StatusBadRequest, "Invalid business hour `id`.", nil, envelope.InputError)
32+
return r.SendErrorEnvelope(fasthttp.StatusBadRequest, app.i18n.Ts("globals.messages.invalid", "name", "`id`"), nil, envelope.InputError)
3333
}
3434
businessHour, err := app.businessHours.Get(id)
3535
if err != nil {
3636
if err == businessHours.ErrBusinessHoursNotFound {
3737
return r.SendErrorEnvelope(fasthttp.StatusNotFound, err.Error(), nil, envelope.NotFoundError)
3838
}
39-
return r.SendErrorEnvelope(fasthttp.StatusInternalServerError, "Error fetching business hour", nil, "")
39+
return r.SendErrorEnvelope(fasthttp.StatusInternalServerError, app.i18n.Ts("globals.messages.errorFetching", "name", "{globals.terms.businessHour}"), nil, "")
4040
}
4141
return r.SendEnvelope(businessHour)
4242
}
@@ -48,11 +48,11 @@ func handleCreateBusinessHours(r *fastglue.Request) error {
4848
businessHours = models.BusinessHours{}
4949
)
5050
if err := r.Decode(&businessHours, "json"); err != nil {
51-
return r.SendErrorEnvelope(fasthttp.StatusBadRequest, "decode failed", err.Error(), envelope.InputError)
51+
return r.SendErrorEnvelope(fasthttp.StatusBadRequest, app.i18n.Ts("globals.messages.errorParsing", "name", "{globals.terms.request}"), nil, envelope.InputError)
5252
}
5353

5454
if businessHours.Name == "" {
55-
return r.SendErrorEnvelope(fasthttp.StatusBadRequest, "Empty business hour `Name`", nil, envelope.InputError)
55+
return r.SendErrorEnvelope(fasthttp.StatusBadRequest, app.i18n.Ts("globals.messages.empty", "name", "`name`"), nil, envelope.InputError)
5656
}
5757

5858
if err := app.businessHours.Create(businessHours.Name, businessHours.Description, businessHours.IsAlwaysOpen, businessHours.Hours, businessHours.Holidays); err != nil {
@@ -69,14 +69,11 @@ func handleDeleteBusinessHour(r *fastglue.Request) error {
6969
)
7070
id, err := strconv.Atoi(r.RequestCtx.UserValue("id").(string))
7171
if err != nil || id == 0 {
72-
return r.SendErrorEnvelope(fasthttp.StatusBadRequest, "Invalid business hour `id`.", nil, envelope.InputError)
72+
return r.SendErrorEnvelope(fasthttp.StatusBadRequest, app.i18n.Ts("globals.messages.invalid", "name", "`id`"), nil, envelope.InputError)
7373
}
74-
75-
err = app.businessHours.Delete(id)
76-
if err != nil {
74+
if err = app.businessHours.Delete(id); err != nil {
7775
return sendErrorEnvelope(r, err)
7876
}
79-
8077
return r.SendEnvelope(true)
8178
}
8279

@@ -88,20 +85,16 @@ func handleUpdateBusinessHours(r *fastglue.Request) error {
8885
)
8986
id, err := strconv.Atoi(r.RequestCtx.UserValue("id").(string))
9087
if err != nil || id == 0 {
91-
return r.SendErrorEnvelope(fasthttp.StatusBadRequest, "Invalid business hour `id`.", nil, envelope.InputError)
88+
return r.SendErrorEnvelope(fasthttp.StatusBadRequest, app.i18n.Ts("globals.messages.invalid", "name", "`id`"), nil, envelope.InputError)
9289
}
93-
9490
if err := r.Decode(&businessHours, "json"); err != nil {
95-
return r.SendErrorEnvelope(fasthttp.StatusBadRequest, "decode failed", err.Error(), envelope.InputError)
91+
return r.SendErrorEnvelope(fasthttp.StatusBadRequest, app.i18n.Ts("globals.messages.errorParsing", "name", "{globals.terms.request}"), err.Error(), envelope.InputError)
9692
}
97-
9893
if businessHours.Name == "" {
99-
return r.SendErrorEnvelope(fasthttp.StatusBadRequest, "Empty business hour `Name`", nil, envelope.InputError)
94+
return r.SendErrorEnvelope(fasthttp.StatusBadRequest, app.i18n.Ts("globals.messages.invalid", "name", "`name`"), nil, envelope.InputError)
10095
}
101-
10296
if err := app.businessHours.Update(id, businessHours.Name, businessHours.Description, businessHours.IsAlwaysOpen, businessHours.Hours, businessHours.Holidays); err != nil {
10397
return sendErrorEnvelope(r, err)
10498
}
105-
10699
return r.SendEnvelope(true)
107100
}

0 commit comments

Comments
 (0)