Skip to content

Commit

Permalink
Replaced logger. Changed type of message smsc-id field to string
Browse files Browse the repository at this point in the history
  • Loading branch information
DMAliev committed Sep 29, 2020
1 parent dc37087 commit 08fe884
Show file tree
Hide file tree
Showing 21 changed files with 200 additions and 254 deletions.
8 changes: 4 additions & 4 deletions .env
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
#smsc IP
SMS_IP=172.28.146.122
SMS_IP=smscsim.melroselabs.com
#smsc port
SMS_PORT=8018
SMS_PORT=2775
#smsc account
SMS_ID=testtest
SMS_ID=337751
#smsc password
SMS_PWD=*
SMS_PWD=fa3233
#port on which HTTP API is exposed
HTTP_PORT=8080
#how many days to store data
Expand Down
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
.idea
sms-sender.exe
sms-sender
smsservice
/coverage.txt
coverage.txt
sms.db
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ HTTP API description is available at `http://${base-path}/swagger/index.html` (t

- Sending message (there might be more than one recipient phone):
```
curl localhost:8080/sms -H "Content-Type: application/json" -d '{"phones":["996778295555"],"text":"hello", "sender":"awesome"}'
curl localhost:8080/sms -H "Content-Type: application/json" -d '{"phones":["996XXXZZZZZZ"],"text":"hello", "sender":"awesome"}'
```
will return response containing id of message, which can be used later to check status of message delivery:
```
Expand All @@ -23,7 +23,7 @@ will return response containing id of message, which can be used later to check
- Check status of message delivery
```
curl localhost:8080/sms/56
curl localhost:8080/sms/56?phone=996778295555
curl localhost:8080/sms/56?phone=996XXXZZZZZZ
```
response:
```
Expand All @@ -33,7 +33,7 @@ response:
"text": "hello",
"statuses": [
{
"phone": "996778295555",
"phone": "996XXXZZZZZZ",
"status": "DELIVRD"
}
]
Expand All @@ -55,7 +55,7 @@ If _WEB_HOOK_ is set to some non-empty URL, the service will send notifications
"text": "hello",
"statuses": [
{
"phone": "996778295555",
"phone": "996XXXZZZZZZ",
"status": "DELIVRD"
}
]
Expand Down
15 changes: 8 additions & 7 deletions controller/controllers.go
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
package controller

import (
"github.com/dilshat/sms-sender/log"
"github.com/dilshat/sms-sender/service"
"github.com/dilshat/sms-sender/service/dto"
"github.com/labstack/echo/v4"
"net/http"
"strconv"
"strings"

"github.com/dilshat/sms-sender/service"
"github.com/dilshat/sms-sender/service/dto"
"github.com/labstack/echo/v4"
"go.uber.org/zap"
)

// SendSms godoc
Expand All @@ -33,7 +34,7 @@ func GetSendSmsFunc(srv service.Service) echo.HandlerFunc {
case *service.InvalidPayloadErr:
return c.String(http.StatusBadRequest, err.Error())
default:
log.Error.Println(err)
zap.L().Error("Error sending message", zap.Error(err))
return c.String(http.StatusInternalServerError, "System malfunction. Please, try later")
}
}
Expand Down Expand Up @@ -68,7 +69,7 @@ func GetCheckSmsFunc(service service.Service) echo.HandlerFunc {
if err.Error() == "not found" {
return c.String(http.StatusNotFound, "Message not found "+id)
} else {
log.Error.Println(err)
zap.L().Error("Error checking message status", zap.Error(err))
return c.String(http.StatusInternalServerError, "System malfunction. Please, try later")
}
}
Expand All @@ -80,7 +81,7 @@ func GetCheckSmsFunc(service service.Service) echo.HandlerFunc {
if err.Error() == "not found" {
return c.String(http.StatusNotFound, "Phone not found "+phone)
} else {
log.Error.Println(err)
zap.L().Error("Error checking recipient message status", zap.Error(err))
return c.String(http.StatusInternalServerError, "System malfunction. Please, try later")
}
}
Expand Down
6 changes: 3 additions & 3 deletions controller/controllers_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -79,21 +79,21 @@ func TestGetCheckSmsFunc(t *testing.T) {
stringCalled = false
f = GetCheckSmsFunc(mockService{checkStatusErr: errors.New("not found")})

_ = f(mockContext{param: "123", queryParam: "996777123456"})
_ = f(mockContext{param: "123", queryParam: "996YYYAABBCC"})

require.True(t, stringCalled)

stringCalled = false
f = GetCheckSmsFunc(mockService{checkStatusErr: errors.New("blablabla")})

_ = f(mockContext{param: "123", queryParam: "996777123456"})
_ = f(mockContext{param: "123", queryParam: "996YYYAABBCC"})

require.True(t, stringCalled)

OK200 = false
f = GetCheckSmsFunc(mockService{})

_ = f(mockContext{param: "123", queryParam: "996777123456"})
_ = f(mockContext{param: "123", queryParam: "996YYYAABBCC"})

require.True(t, OK200)
}
Expand Down
11 changes: 6 additions & 5 deletions dao/message_test.go
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
package dao

import (
"github.com/dilshat/sms-sender/log"
"github.com/dilshat/sms-sender/model"
"github.com/stretchr/testify/require"
"testing"
"time"

"github.com/dilshat/sms-sender/model"
"github.com/stretchr/testify/require"
"go.uber.org/zap"
)

const (
Expand All @@ -27,13 +28,13 @@ func prepareDB(t errorHandler) (Db, func()) {
msg := &model.Message{Sender: SENDER, Text: TEXT, CreatedAt: time.Now()}
err := db.Save(msg)
if err != nil {
log.Fatal(err)
zap.L().Fatal(err.Error())
}
ID1 = msg.Id
msg = &model.Message{Sender: SENDER2, Text: TEXT2, CreatedAt: time.Now().Add(-25 * time.Hour)}
err = db.Save(msg)
if err != nil {
log.Fatal(err)
zap.L().Fatal(err.Error())
}
ID2 = msg.Id

Expand Down
11 changes: 6 additions & 5 deletions dao/recipient.go
Original file line number Diff line number Diff line change
@@ -1,18 +1,19 @@
package dao

import (
"time"

"github.com/asdine/storm/v3/q"
"github.com/dilshat/sms-sender/model"
"time"
)

type RecipientDao interface {
//Create creates recipient record and returns its id
Create(messageId uint32, phone string) (uint32, error)
//UpdateSubmitStatus updates status and delivery id of recipient record with the given id
UpdateSubmitStatus(id uint32, deliverId uint64, status string) error
UpdateSubmitStatus(id uint32, deliverId string, status string) error
//UpdateDeliverStatus updates status of recipient record with the delivery id
UpdateDeliverStatus(deliverId uint64, status string) (uint32, string, error)
UpdateDeliverStatus(deliverId string, status string) (uint32, string, error)
//GetOneByMessageIdAndPhone returns a recipient with the given message id and phone
GetOneByMessageIdAndPhone(messageId uint32, phone string) (model.Recipient, error)
//GetAllByMessageId returns all recipients with the given message id
Expand Down Expand Up @@ -45,7 +46,7 @@ func (r recipientDao) Create(messageId uint32, phone string) (uint32, error) {
return recipient.Id, err
}

func (r recipientDao) UpdateSubmitStatus(id uint32, deliverId uint64, status string) error {
func (r recipientDao) UpdateSubmitStatus(id uint32, deliverId string, status string) error {
//update status based on SUBMIT_SM_RESP status
var recipient model.Recipient
err := r.db.One("Id", id, &recipient)
Expand All @@ -57,7 +58,7 @@ func (r recipientDao) UpdateSubmitStatus(id uint32, deliverId uint64, status str
return r.db.Update(&recipient)
}

func (r recipientDao) UpdateDeliverStatus(deliverId uint64, status string) (uint32, string, error) {
func (r recipientDao) UpdateDeliverStatus(deliverId string, status string) (uint32, string, error) {
//update status based on DELIVER_SM
var recipient model.Recipient
err := r.db.One("DeliverId", deliverId, &recipient)
Expand Down
17 changes: 9 additions & 8 deletions dao/recipient_test.go
Original file line number Diff line number Diff line change
@@ -1,19 +1,20 @@
package dao

import (
"github.com/dilshat/sms-sender/log"
"github.com/dilshat/sms-sender/model"
"github.com/stretchr/testify/require"
"testing"
"time"

"github.com/dilshat/sms-sender/model"
"github.com/stretchr/testify/require"
"go.uber.org/zap"
)

const (
MSG_ID1 = uint32(123)
MSG_ID2 = uint32(321)
PHONE1 = "996777123456"
PHONE2 = "996222987654"
DELIVER_ID = uint64(1234)
PHONE1 = "996YYYAABBCC"
PHONE2 = "999ZZZXXXXXX"
DELIVER_ID = "1234"
)

func prepareDB2(t errorHandler) (Db, func()) {
Expand All @@ -23,13 +24,13 @@ func prepareDB2(t errorHandler) (Db, func()) {
msg := &model.Recipient{MessageId: MSG_ID1, Phone: PHONE1, Id: ID1, CreatedAt: time.Now()}
err := db.Save(msg)
if err != nil {
log.Fatal(err)
zap.L().Fatal(err.Error())
}
ID1 = msg.Id
msg = &model.Recipient{MessageId: MSG_ID2, Phone: PHONE2, Id: ID2, CreatedAt: time.Now().Add(-25 * time.Hour)}
err = db.Save(msg)
if err != nil {
log.Fatal(err)
zap.L().Fatal(err.Error())
}
ID2 = msg.Id

Expand Down
10 changes: 5 additions & 5 deletions design
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ POST /sms
{
"sender" : "Awesome",
"text" : "Hello World",
"phones" : ["996777123456","996222765432"]
"phones" : ["996XXXZZZZZZ","996XXXAABBCC"]
}

response:
Expand All @@ -29,19 +29,19 @@ response:
"text" : "Hello World",
"statuses" : [
{
"phone" : "996777123456",
"phone" : "996XXXZZZZZZ",
"status" : "DELIVRD"
},
{
"phone" : "996222765432",
"phone" : "996XXXAABBCC",
"status" : "UNDELIV"
}
]
}

------------------------------------

GET /sms/1234?phone=996777123456
GET /sms/1234?phone=996XXXAABBCC
response:
200 OK
{
Expand All @@ -50,7 +50,7 @@ response:
"text" : "Hello World",
"statuses" : [
{
"phone" : "996777123456",
"phone" : "996XXXAABBCC",
"status" : "DELIVRD"
}
]
Expand Down
2 changes: 2 additions & 0 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,13 @@ require (
github.com/go-openapi/swag v0.19.8 // indirect
github.com/joho/godotenv v1.3.0
github.com/labstack/echo/v4 v4.1.16
github.com/labstack/gommon v0.3.0
github.com/mailru/easyjson v0.7.1 // indirect
github.com/stretchr/testify v1.4.0
github.com/swaggo/echo-swagger v1.0.0
github.com/swaggo/swag v1.6.5
go.etcd.io/bbolt v1.3.4
go.uber.org/zap v1.16.0
golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59 // indirect
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e // indirect
golang.org/x/sys v0.0.0-20200331124033-c3d80250170d // indirect
Expand Down
20 changes: 20 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -71,10 +71,12 @@ github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4=
github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc=
github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg=
github.com/json-iterator/go v1.1.5/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
Expand Down Expand Up @@ -112,9 +114,11 @@ github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Ky
github.com/mergenchik/smpp34 v0.0.0-20161220084733-a78423368866/go.mod h1:8udkV78q3Ltb1jR0PiTWjAn1NXA+sDbI8dhmZzyLFc8=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
Expand Down Expand Up @@ -154,14 +158,24 @@ github.com/vmihailenco/msgpack v4.0.4+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6Ac
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
go.etcd.io/bbolt v1.3.4 h1:hi1bXHMVrlQh6WwxAy+qZCV/SYIlqo+Ushwdpa4tAKg=
go.etcd.io/bbolt v1.3.4/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ=
go.uber.org/atomic v1.6.0 h1:Ezj3JGmsOnG1MoRWQkPBsKLe9DwWD9QeXzTRzzldNVk=
go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
go.uber.org/multierr v1.5.0 h1:KCa4XfM8CWFCpxXRGok+Q0SS/0XBhMDbHHGABQLvD2A=
go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU=
go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA=
go.uber.org/zap v1.16.0 h1:uFRZXykJGK9lLY4HtgSw44DnIcAM+kRBP7x5m+NpAOM=
go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ=
golang.org/x/crypto v0.0.0-20190130090550-b01c7a725664/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200221231518-2aa609cf4a9d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59 h1:3zb4D3T4G8jdExgVU/95+vQXfpEPiMdCaZgmGVxjNHM=
golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
golang.org/x/mod v0.2.0 h1:KU7oHjnv3XNWfa5COkzUifxZmxp1TyI7ImMXqFxLwvQ=
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
Expand Down Expand Up @@ -203,10 +217,14 @@ golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
golang.org/x/time v0.0.0-20191024005414-555d28b269f0 h1:/5xXl8Y5W96D+TtHSlonuFqGHIWVuyCkGJLwGh9JJFs=
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190606050223-4d9ae51c2468/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
golang.org/x/tools v0.0.0-20190611222205-d73e1c7e250b h1:/mJ+GKieZA6hFDQGdWZrjj4AXPl5ylY+5HusG80roy0=
golang.org/x/tools v0.0.0-20190611222205-d73e1c7e250b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191205060818-73c7173a9f7d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20200401192744-099440627f01 h1:ysQJ/fU6laLOZJseIeOqXl6Mo+lw5z6b7QHnmUKjW+k=
Expand All @@ -221,6 +239,7 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE=
gopkg.in/go-playground/validator.v8 v8.18.2/go.mod h1:RX2a/7Ha8BgOhfk7j780h4/u/RRjR0eouCJSH80/M2Y=
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
Expand All @@ -230,5 +249,6 @@ gopkg.in/yaml.v2 v2.2.7 h1:VUgggvou5XRW9mHwD/yXxIYSMtY0zoKQf/v226p2nyo=
gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10=
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
launchpad.net/gocheck v0.0.0-20140225173054-000000000087 h1:Izowp2XBH6Ya6rv+hqbceQyw/gSGoXfH/UPoTGduL54=
launchpad.net/gocheck v0.0.0-20140225173054-000000000087/go.mod h1:hj7XX3B/0A+80Vse0e+BUHsHMTEhd0O4cpUHr/e/BUM=
Loading

0 comments on commit 08fe884

Please sign in to comment.