diff --git a/cmd/agent/main.go b/cmd/agent/main.go new file mode 100644 index 0000000..06ab7d0 --- /dev/null +++ b/cmd/agent/main.go @@ -0,0 +1 @@ +package main diff --git a/etc/main.yaml.template b/etc/main.yaml.template index c18830f..efe6e49 100644 --- a/etc/main.yaml.template +++ b/etc/main.yaml.template @@ -24,6 +24,7 @@ Application: UserEmail: "user1@mail.com" UserPassword: "secret" HomeDir: "etc/.mark1" + TemplatesDir: "pkg/client/repository/templates/" MySQL: host: 127.0.0.1 diff --git a/pkg/agent/base.go b/pkg/agent/base.go new file mode 100644 index 0000000..4883155 --- /dev/null +++ b/pkg/agent/base.go @@ -0,0 +1 @@ +package agent diff --git a/pkg/agent/controller/.gitkeep b/pkg/agent/controller/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/pkg/agent/repository/.gitkeep b/pkg/agent/repository/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/pkg/agent/repository/linux/.gitkeep b/pkg/agent/repository/linux/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/pkg/agent/repository/linux/rocky/.gitkeep b/pkg/agent/repository/linux/rocky/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/pkg/agent/repository/linux/ubuntu/.gitkeep b/pkg/agent/repository/linux/ubuntu/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/pkg/agent/usecase/.gitkeep b/pkg/agent/usecase/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/pkg/client/controller/agent.go b/pkg/client/controller/agent.go new file mode 100644 index 0000000..b0b429f --- /dev/null +++ b/pkg/client/controller/agent.go @@ -0,0 +1 @@ +package controller diff --git a/pkg/client/repository/agent.go b/pkg/client/repository/agent.go new file mode 100644 index 0000000..50a4378 --- /dev/null +++ b/pkg/client/repository/agent.go @@ -0,0 +1 @@ +package repository diff --git a/pkg/client/usecase/agent.go b/pkg/client/usecase/agent.go new file mode 100644 index 0000000..aed2454 --- /dev/null +++ b/pkg/client/usecase/agent.go @@ -0,0 +1 @@ +package usecase diff --git a/pkg/config/yaml.go b/pkg/config/yaml.go index b139ddd..2cca0f9 100644 --- a/pkg/config/yaml.go +++ b/pkg/config/yaml.go @@ -46,6 +46,12 @@ type Client struct { TemplatesDir string `yaml:"TemplatesDir"` } +type Agent struct { + ServerEndpoint string `yaml:"ServerEndpoint"` + UserEmail string `yaml:"UserEmail"` + UserPassword string `yaml:"UserPassword"` +} + type Application struct { Server Server `yaml:"Server"` Client Client `yaml:"Client"` diff --git a/pkg/entity/model/agent.go b/pkg/entity/model/agent.go new file mode 100644 index 0000000..8b53790 --- /dev/null +++ b/pkg/entity/model/agent.go @@ -0,0 +1 @@ +package model diff --git a/pkg/entity/request/agent.go b/pkg/entity/request/agent.go new file mode 100644 index 0000000..725b8fc --- /dev/null +++ b/pkg/entity/request/agent.go @@ -0,0 +1 @@ +package request diff --git a/pkg/entity/response/agent.go b/pkg/entity/response/agent.go new file mode 100644 index 0000000..a467149 --- /dev/null +++ b/pkg/entity/response/agent.go @@ -0,0 +1 @@ +package response diff --git a/pkg/server/controller/agent_internal.go b/pkg/server/controller/agent_internal.go new file mode 100644 index 0000000..0016c1c --- /dev/null +++ b/pkg/server/controller/agent_internal.go @@ -0,0 +1,73 @@ +package controller + +import ( + "net/http" + + "github.com/gin-gonic/gin" + "github.com/ryo-arima/mark1/pkg/entity/model" + "github.com/ryo-arima/mark1/pkg/entity/request" + "github.com/ryo-arima/mark1/pkg/entity/response" + "github.com/ryo-arima/mark1/pkg/server/repository" +) + +type GroupControllerForInternal interface { + GetGroups(c *gin.Context) + CreateGroup(c *gin.Context) + UpdateGroup(c *gin.Context) + DeleteGroup(c *gin.Context) +} + +type groupControllerForInternal struct { + GroupRepository repository.GroupRepository +} + +func (groupController groupControllerForInternal) GetGroups(c *gin.Context) { + var groupRequest request.GroupRequest + if err := c.Bind(&groupRequest); err != nil { + c.JSON(http.StatusBadRequest, &response.GroupResponse{Code: "SERVER_CONTROLLER_GET__FOR__001", Message: err.Error(), Groups: []response.Group{}}) + return + } + res := groupController.GroupRepository.GetGroups() + c.JSON(http.StatusOK, res) + return +} + +func (groupController groupControllerForInternal) CreateGroup(c *gin.Context) { + var groupRequest request.GroupRequest + if err := c.Bind(&groupRequest); err != nil { + c.JSON(http.StatusBadRequest, &response.GroupResponse{Code: "SERVER_CONTROLLER_CREATE__FOR__001", Message: err.Error(), Groups: []response.Group{}}) + return + } + var groupModel model.Groups + res := groupController.GroupRepository.CreateGroup(groupModel) + c.JSON(http.StatusOK, res) + return +} + +func (groupController groupControllerForInternal) UpdateGroup(c *gin.Context) { + var groupRequest request.GroupRequest + if err := c.Bind(&groupRequest); err != nil { + c.JSON(http.StatusBadRequest, &response.GroupResponse{Code: "SERVER_CONTROLLER_UPDATE__FOR__001", Message: err.Error(), Groups: []response.Group{}}) + return + } + var groupModel model.Groups + res := groupController.GroupRepository.UpdateGroup(groupModel) + c.JSON(http.StatusOK, res) + return +} + +func (groupController groupControllerForInternal) DeleteGroup(c *gin.Context) { + var groupRequest request.GroupRequest + if err := c.Bind(&groupRequest); err != nil { + c.JSON(http.StatusBadRequest, &response.GroupResponse{Code: "SERVER_CONTROLLER_DELETE__FOR__001", Message: err.Error(), Groups: []response.Group{}}) + return + } + var uuid string + res := groupController.GroupRepository.DeleteGroup(uuid) + c.JSON(http.StatusOK, res) + return +} + +func NewGroupControllerForInternal(groupRepository repository.GroupRepository) GroupControllerForInternal { + return &groupControllerForInternal{GroupRepository: groupRepository} +} diff --git a/pkg/server/controller/agent_private.go b/pkg/server/controller/agent_private.go new file mode 100644 index 0000000..b0b429f --- /dev/null +++ b/pkg/server/controller/agent_private.go @@ -0,0 +1 @@ +package controller diff --git a/pkg/server/controller/group_internal.go b/pkg/server/controller/group_internal.go index 0016c1c..b0b429f 100644 --- a/pkg/server/controller/group_internal.go +++ b/pkg/server/controller/group_internal.go @@ -1,73 +1 @@ package controller - -import ( - "net/http" - - "github.com/gin-gonic/gin" - "github.com/ryo-arima/mark1/pkg/entity/model" - "github.com/ryo-arima/mark1/pkg/entity/request" - "github.com/ryo-arima/mark1/pkg/entity/response" - "github.com/ryo-arima/mark1/pkg/server/repository" -) - -type GroupControllerForInternal interface { - GetGroups(c *gin.Context) - CreateGroup(c *gin.Context) - UpdateGroup(c *gin.Context) - DeleteGroup(c *gin.Context) -} - -type groupControllerForInternal struct { - GroupRepository repository.GroupRepository -} - -func (groupController groupControllerForInternal) GetGroups(c *gin.Context) { - var groupRequest request.GroupRequest - if err := c.Bind(&groupRequest); err != nil { - c.JSON(http.StatusBadRequest, &response.GroupResponse{Code: "SERVER_CONTROLLER_GET__FOR__001", Message: err.Error(), Groups: []response.Group{}}) - return - } - res := groupController.GroupRepository.GetGroups() - c.JSON(http.StatusOK, res) - return -} - -func (groupController groupControllerForInternal) CreateGroup(c *gin.Context) { - var groupRequest request.GroupRequest - if err := c.Bind(&groupRequest); err != nil { - c.JSON(http.StatusBadRequest, &response.GroupResponse{Code: "SERVER_CONTROLLER_CREATE__FOR__001", Message: err.Error(), Groups: []response.Group{}}) - return - } - var groupModel model.Groups - res := groupController.GroupRepository.CreateGroup(groupModel) - c.JSON(http.StatusOK, res) - return -} - -func (groupController groupControllerForInternal) UpdateGroup(c *gin.Context) { - var groupRequest request.GroupRequest - if err := c.Bind(&groupRequest); err != nil { - c.JSON(http.StatusBadRequest, &response.GroupResponse{Code: "SERVER_CONTROLLER_UPDATE__FOR__001", Message: err.Error(), Groups: []response.Group{}}) - return - } - var groupModel model.Groups - res := groupController.GroupRepository.UpdateGroup(groupModel) - c.JSON(http.StatusOK, res) - return -} - -func (groupController groupControllerForInternal) DeleteGroup(c *gin.Context) { - var groupRequest request.GroupRequest - if err := c.Bind(&groupRequest); err != nil { - c.JSON(http.StatusBadRequest, &response.GroupResponse{Code: "SERVER_CONTROLLER_DELETE__FOR__001", Message: err.Error(), Groups: []response.Group{}}) - return - } - var uuid string - res := groupController.GroupRepository.DeleteGroup(uuid) - c.JSON(http.StatusOK, res) - return -} - -func NewGroupControllerForInternal(groupRepository repository.GroupRepository) GroupControllerForInternal { - return &groupControllerForInternal{GroupRepository: groupRepository} -} diff --git a/pkg/server/repository/agent.go b/pkg/server/repository/agent.go new file mode 100644 index 0000000..50a4378 --- /dev/null +++ b/pkg/server/repository/agent.go @@ -0,0 +1 @@ +package repository