commit
862448e942
@ -6,10 +6,10 @@ import "time"
|
||||
type Connection struct {
|
||||
ID int `gorm:"primary_key"`
|
||||
ClientID string `gorm:"client_id type:varchar(70);not null;unique" json:"clientId,omitempty"`
|
||||
APIKEY string `gorm:"api_key type:varchar(100);not null" json:"api_key,omitempty" binding:"required"`
|
||||
APIURL string `gorm:"api_url type:varchar(255);not null" json:"api_url,omitempty" binding:"required,validatecrmurl"`
|
||||
MGURL string `gorm:"mg_url type:varchar(255);not null;" json:"mg_url,omitempty"`
|
||||
MGToken string `gorm:"mg_token type:varchar(100);not null;unique" json:"mg_token,omitempty"`
|
||||
APIKEY string `gorm:"api_key type:varchar(100);not null" json:"api_key,omitempty" binding:"required,max=100"`
|
||||
APIURL string `gorm:"api_url type:varchar(255);not null" json:"api_url,omitempty" binding:"required,validatecrmurl,max=255"`
|
||||
MGURL string `gorm:"mg_url type:varchar(255);not null;" json:"mg_url,omitempty" binding:"max=255"`
|
||||
MGToken string `gorm:"mg_token type:varchar(100);not null;unique" json:"mg_token,omitempty" binding:"max=100"`
|
||||
CreatedAt time.Time
|
||||
UpdatedAt time.Time
|
||||
Active bool `json:"active,omitempty"`
|
||||
@ -21,10 +21,10 @@ type Bot struct {
|
||||
ID int `gorm:"primary_key"`
|
||||
ConnectionID int `gorm:"connection_id" json:"connectionId,omitempty"`
|
||||
Channel uint64 `gorm:"channel;not null;unique" json:"channel,omitempty"`
|
||||
ChannelSettingsHash string `gorm:"channel_settings_hash type:varchar(70)"`
|
||||
Token string `gorm:"token type:varchar(100);not null;unique" json:"token,omitempty"`
|
||||
Name string `gorm:"name type:varchar(40)" json:"name,omitempty"`
|
||||
Lang string `gorm:"lang type:varchar(2)" json:"lang,omitempty"`
|
||||
ChannelSettingsHash string `gorm:"channel_settings_hash type:varchar(70)" binding:"max=70"`
|
||||
Token string `gorm:"token type:varchar(100);not null;unique" json:"token,omitempty" binding:"max=100"`
|
||||
Name string `gorm:"name type:varchar(40)" json:"name,omitempty" binding:"max=40"`
|
||||
Lang string `gorm:"lang type:varchar(2)" json:"lang,omitempty" binding:"max=2"`
|
||||
CreatedAt time.Time
|
||||
UpdatedAt time.Time
|
||||
}
|
||||
@ -33,8 +33,8 @@ type Bot struct {
|
||||
type User struct {
|
||||
ID int `gorm:"primary_key"`
|
||||
ExternalID int `gorm:"external_id;not null;unique"`
|
||||
UserPhotoURL string `gorm:"user_photo_url type:varchar(255)"`
|
||||
UserPhotoID string `gorm:"user_photo_id type:varchar(100)"`
|
||||
UserPhotoURL string `gorm:"user_photo_url type:varchar(255)" binding:"max=255"`
|
||||
UserPhotoID string `gorm:"user_photo_id type:varchar(100)" binding:"max=100"`
|
||||
CreatedAt time.Time
|
||||
UpdatedAt time.Time
|
||||
}
|
||||
|
@ -591,7 +591,7 @@ func mgWebhookHandler(c *gin.Context) {
|
||||
var mb string
|
||||
switch msg.Data.Type {
|
||||
case v1.MsgTypeProduct:
|
||||
mb = fmt.Sprintf("*%s*\n", msg.Data.Product.Name)
|
||||
mb = fmt.Sprintf("*%s*\n", replaceMarkdownSymbols(msg.Data.Product.Name))
|
||||
|
||||
if msg.Data.Product.Cost != nil && msg.Data.Product.Cost.Value != 0 {
|
||||
mb += fmt.Sprintf(
|
||||
@ -608,9 +608,9 @@ func mgWebhookHandler(c *gin.Context) {
|
||||
}
|
||||
|
||||
if msg.Data.Product.Url != "" {
|
||||
mb += msg.Data.Product.Url
|
||||
mb += replaceMarkdownSymbols(msg.Data.Product.Url)
|
||||
} else {
|
||||
mb += msg.Data.Product.Img
|
||||
mb += replaceMarkdownSymbols(msg.Data.Product.Img)
|
||||
}
|
||||
case v1.MsgTypeOrder:
|
||||
mb = getOrderMessage(msg.Data.Order)
|
||||
@ -678,7 +678,7 @@ func getOrderMessage(dataOrder *v1.MessageDataOrder) string {
|
||||
mb := "*" + getLocalizedMessage("order")
|
||||
|
||||
if dataOrder.Number != "" {
|
||||
mb += " " + dataOrder.Number
|
||||
mb += " " + replaceMarkdownSymbols(dataOrder.Number)
|
||||
}
|
||||
|
||||
if dataOrder.Date != "" {
|
||||
@ -691,7 +691,7 @@ func getOrderMessage(dataOrder *v1.MessageDataOrder) string {
|
||||
mb += fmt.Sprintf(
|
||||
"%d. %s",
|
||||
k+1,
|
||||
v.Name,
|
||||
replaceMarkdownSymbols(v.Name),
|
||||
)
|
||||
|
||||
if v.Quantity != nil {
|
||||
@ -727,7 +727,7 @@ func getOrderMessage(dataOrder *v1.MessageDataOrder) string {
|
||||
mb += fmt.Sprintf(
|
||||
"\n*%s:*\n%s",
|
||||
getLocalizedMessage("delivery"),
|
||||
dataOrder.Delivery.Name,
|
||||
replaceMarkdownSymbols(dataOrder.Delivery.Name),
|
||||
)
|
||||
}
|
||||
|
||||
@ -747,7 +747,7 @@ func getOrderMessage(dataOrder *v1.MessageDataOrder) string {
|
||||
}
|
||||
|
||||
if dataOrder.Delivery.Address != "" {
|
||||
mb += ";\n" + dataOrder.Delivery.Address
|
||||
mb += ";\n" + replaceMarkdownSymbols(dataOrder.Delivery.Address)
|
||||
}
|
||||
|
||||
mb += "\n"
|
||||
@ -759,7 +759,7 @@ func getOrderMessage(dataOrder *v1.MessageDataOrder) string {
|
||||
getLocalizedMessage("payment"),
|
||||
)
|
||||
for _, v := range dataOrder.Payments {
|
||||
mb += v.Name
|
||||
mb += replaceMarkdownSymbols(v.Name)
|
||||
|
||||
if v.Amount != nil {
|
||||
if val, ok := currency[strings.ToLower(v.Amount.Currency)]; ok && v.Amount.Value != 0 {
|
||||
@ -779,7 +779,7 @@ func getOrderMessage(dataOrder *v1.MessageDataOrder) string {
|
||||
if v.Status != nil && v.Status.Name != "" {
|
||||
mb += fmt.Sprintf(
|
||||
" (%s)",
|
||||
v.Status.Name,
|
||||
replaceMarkdownSymbols(v.Status.Name),
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -24,6 +24,7 @@ var (
|
||||
"/api/integration-modules/{code}",
|
||||
"/api/integration-modules/{code}/edit",
|
||||
}
|
||||
markdownSymbols = []string{"*", "_", "`", "["}
|
||||
)
|
||||
|
||||
// GenerateToken function
|
||||
@ -133,3 +134,11 @@ func getChannelSettingsHash() (hash string, err error) {
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
func replaceMarkdownSymbols(s string) string {
|
||||
for _, v := range markdownSymbols {
|
||||
s = strings.Replace(s, v, "\\"+v, -1)
|
||||
}
|
||||
|
||||
return s
|
||||
}
|
||||
|
@ -12,12 +12,12 @@
|
||||
<input name="clientId" type="hidden" value="{{.Conn.ClientID}}">
|
||||
<div class="row">
|
||||
<div class="input-field col s12">
|
||||
<input placeholder="CRM Url" id="api_url" name="api_url" type="text" class="validate" value="{{.Conn.APIURL}}">
|
||||
<input placeholder="CRM Url" id="api_url" name="api_url" type="text" class="validate" value="{{.Conn.APIURL}}" maxlength="255">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="input-field col s12">
|
||||
<input placeholder="{{.Locale.ApiKey}}" id="api_key" name="api_key" type="text" class="validate" value="{{.Conn.APIKEY}}">
|
||||
<input placeholder="{{.Locale.ApiKey}}" id="api_key" name="api_key" type="text" class="validate" value="{{.Conn.APIKEY}}" maxlength="100">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
@ -40,7 +40,7 @@
|
||||
<input name="connectionId" type="hidden" value="{{.Conn.ID}}">
|
||||
<div class="row">
|
||||
<div class="input-field col s12">
|
||||
<input placeholder="{{.Locale.TableToken}}" id="token" name="token" type="text" class="validate">
|
||||
<input placeholder="{{.Locale.TableToken}}" id="token" name="token" type="text" class="validate" maxlength="100">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
|
@ -4,13 +4,13 @@
|
||||
<div id="msg"></div>
|
||||
<div class="row">
|
||||
<div class="input-field col s12">
|
||||
<input placeholder="CRM Url" id="api_url" name="api_url" type="text" class="validate"
|
||||
<input placeholder="CRM Url" id="api_url" name="api_url" type="text" class="validate" maxlength="255"
|
||||
{{if .Conn.APIURL}} value="{{.Conn.APIURL}}" {{end}}>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="input-field col s12">
|
||||
<input placeholder="{{.Locale.ApiKey}}" id="api_key" name="api_key" type="text" class="validate">
|
||||
<input placeholder="{{.Locale.ApiKey}}" id="api_key" name="api_key" type="text" class="validate" maxlength="100">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
|
Loading…
Reference in New Issue
Block a user