From 42206e09b9a773caa31c88cabd9939c8f9d79265 Mon Sep 17 00:00:00 2001 From: Aleksandr Soloshenko Date: Sat, 9 Dec 2023 22:57:07 +0700 Subject: [PATCH] Fixed: allow up to 65535 symbols in message text --- Makefile | 4 ++-- api/swagger.json | 2 +- api/swagger.yaml | 2 +- .../mysql/20231209225449_message_length.sql | 11 +++++++++++ internal/sms-gateway/models/models.go | 2 +- pkg/smsgateway/domain.go | 2 +- 6 files changed, 17 insertions(+), 6 deletions(-) create mode 100644 internal/sms-gateway/models/migrations/mysql/20231209225449_message_length.sql diff --git a/Makefile b/Makefile index 5d0d4c28..047fa509 100644 --- a/Makefile +++ b/Makefile @@ -18,10 +18,10 @@ air: air db-upgrade: - goose up + go run ./cmd/$(project_name)/main.go db:migrate db-upgrade-raw: - go run ./cmd/$(project_name)/main.go db:migrate + go run ./cmd/$(project_name)/main.go db:auto-migrate run: go run cmd/$(project_name)/main.go diff --git a/api/swagger.json b/api/swagger.json index 1a63bc06..a4dfab8d 100644 --- a/api/swagger.json +++ b/api/swagger.json @@ -343,7 +343,7 @@ "message": { "description": "Текст сообщения", "type": "string", - "maxLength": 256, + "maxLength": 65535, "example": "Hello World!" }, "phoneNumbers": { diff --git a/api/swagger.yaml b/api/swagger.yaml index b707bd64..343ff698 100644 --- a/api/swagger.yaml +++ b/api/swagger.yaml @@ -22,7 +22,7 @@ definitions: message: description: Текст сообщения example: Hello World! - maxLength: 256 + maxLength: 65535 type: string phoneNumbers: description: Получатели diff --git a/internal/sms-gateway/models/migrations/mysql/20231209225449_message_length.sql b/internal/sms-gateway/models/migrations/mysql/20231209225449_message_length.sql new file mode 100644 index 00000000..2f9cae6a --- /dev/null +++ b/internal/sms-gateway/models/migrations/mysql/20231209225449_message_length.sql @@ -0,0 +1,11 @@ +-- +goose Up +-- +goose StatementBegin +ALTER TABLE `messages` +MODIFY COLUMN `message` text NOT NULL; +-- +goose StatementEnd +--- +-- +goose Down +-- +goose StatementBegin +ALTER TABLE `messages` +MODIFY COLUMN `message` tinytext NOT NULL; +-- +goose StatementEnd \ No newline at end of file diff --git a/internal/sms-gateway/models/models.go b/internal/sms-gateway/models/models.go index 05ddf369..b3b86b38 100644 --- a/internal/sms-gateway/models/models.go +++ b/internal/sms-gateway/models/models.go @@ -45,7 +45,7 @@ type Message struct { ID uint64 `gorm:"primaryKey;type:BIGINT UNSIGNED;autoIncrement"` DeviceID string `gorm:"not null;type:char(21);uniqueIndex:unq_messages_id_device,priority:2;index:idx_messages_device_state"` ExtID string `gorm:"not null;type:varchar(36);uniqueIndex:unq_messages_id_device,priority:1"` - Message string `gorm:"not null;type:tinytext"` + Message string `gorm:"not null;type:text"` State MessageState `gorm:"not null;type:enum('Pending','Sent','Processed','Delivered','Failed');default:Pending;index:idx_messages_device_state"` ValidUntil *time.Time `gorm:"type:datetime"` SimNumber *uint8 `gorm:"type:tinyint(1) unsigned"` diff --git a/pkg/smsgateway/domain.go b/pkg/smsgateway/domain.go index 5416304d..929b2d96 100644 --- a/pkg/smsgateway/domain.go +++ b/pkg/smsgateway/domain.go @@ -13,7 +13,7 @@ const ( // Сообщение type Message struct { ID string `json:"id,omitempty" validate:"omitempty,max=36" example:"PyDmBQZZXYmyxMwED8Fzy"` // Идентификатор - Message string `json:"message" validate:"required,max=256" example:"Hello World!"` // Текст сообщения + Message string `json:"message" validate:"required,max=65535" example:"Hello World!"` // Текст сообщения TTL *uint64 `json:"ttl,omitempty" validate:"omitempty,min=5" example:"86400"` // Время жизни сообщения в секундах SimNumber *uint8 `json:"simNumber,omitempty" validate:"omitempty,max=3" example:"1"` // Номер сим-карты WithDeliveryReport *bool `json:"withDeliveryReport,omitempty" example:"true"` // Запрашивать отчет о доставке