/
semver.go
51 lines (42 loc) · 1.38 KB
/
semver.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package microGateway
import (
"api/models"
proto "api/proto/semver"
semver "api/restapi/operations/version_semantic"
"context"
"fmt"
"github.com/go-openapi/runtime/middleware"
"github.com/micro/go-micro"
)
//ISemverGateway is go-micro gateway for semver
type ISemverGateway interface {
GenerateVersionAction(params semver.SemverGenerateParams) middleware.Responder
}
type semverGateway struct {
semverClient proto.VersionSemverClient
}
//NewSemverGateway returns go-micro gateway for semver
func NewSemverGateway() ISemverGateway {
service := micro.NewService(micro.Name("semver.client"))
return &semverGateway{
semverClient: proto.NewVersionSemverClient("semver", service.Client()),
}
}
//GenerateVersionAction sends generate request to micro-service
func (g *semverGateway) GenerateVersionAction(params semver.SemverGenerateParams) middleware.Responder {
rsp, err := g.semverClient.Generate(context.TODO(), &proto.GenerateRequest{
ProjectId: params.ProjectID,
Major: params.Body.Major,
Minor: params.Body.Minor,
Branch: params.Body.Branch,
})
if err != nil {
fmt.Println(err)
return semver.NewSemverGenerateInternalServerError()
}
fmt.Println(fmt.Sprintf("Version was generated: projectId = %v, version = %v", params.ProjectID, rsp.Version))
s := &models.SemverNumber{
Version: rsp.Version,
}
return semver.NewSemverGenerateCreated().WithPayload(s)
}