From 7a69ef78be05060882f135f87cf6bf2a791bc52b Mon Sep 17 00:00:00 2001 From: Ilya Smyshlyaev Date: Wed, 30 Nov 2022 02:00:20 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BF=D0=B5=D1=80=D0=B5=D0=BF=D0=B8=D1=81?= =?UTF-8?q?=D0=B0=D0=BB=20=D0=BF=D0=BE=D0=BB=D1=83=D1=87=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=20=D0=BA=D0=B5=D0=B9=D1=81=D0=BE=D0=B2,=20=D0=B8=20?= =?UTF-8?q?=D0=BD=D0=B0=D0=BC=D0=B5=D1=82=D0=B8=D0=BB=20=D0=B4=D0=B0=D0=BB?= =?UTF-8?q?=D1=8C=D0=BD=D0=B5=D0=B9=D1=88=D1=83=D1=8E=20=D1=80=D0=B0=D0=B1?= =?UTF-8?q?=D0=BE=D1=82=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.go | 21 ++++++++++++++---- solutions/getTask.go | 41 ---------------------------------- solutions/model.go | 28 ++++++++++------------- solutions/service.go | 53 ++++++++++++++++++++++++++++++++++++++++++++ solutions/store.go | 8 ------- 5 files changed, 82 insertions(+), 69 deletions(-) delete mode 100644 solutions/getTask.go diff --git a/main.go b/main.go index 77d17d3..31a23c2 100644 --- a/main.go +++ b/main.go @@ -1,10 +1,23 @@ package main -import "gotest/solutions" - -var URL = "https://kuvaev-ituniversity.vps.elewise.com/tasks/Чудные вхождения в массив" +import ( + "fmt" + "gotest/solutions" + "net/http" +) func main() { - solutions.NewService().MakeGet(URL) + fmt.Println("Live long and prosper") + testHandler := func(w http.ResponseWriter, _ *http.Request) { + b, _ := solutions.ProcessTask(solutions.Rotation) //воткнул что бы не ругался на не использование + //io.WriteString(w, string(b)) + fmt.Println(b) + } + http.HandleFunc("/status", testHandler) + + err := http.ListenAndServe(solutions.Port, nil) + if err != nil { + panic(err) + } } diff --git a/solutions/getTask.go b/solutions/getTask.go deleted file mode 100644 index f4d0a6c..0000000 --- a/solutions/getTask.go +++ /dev/null @@ -1,41 +0,0 @@ -package solutions - -import ( - "io" - "log" - "net/http" -) - -func NewService() taskService { - return taskService{} -} - -type taskService struct { - store solutionResult -} - -func (t taskService) MakeGet(url string) { - res, err := http.Get(url) - if err != nil { - log.Fatal(err) - } - body, err := io.ReadAll(res.Body) - if err != nil { - log.Fatal(err) - } - res.Body.Close() - - //b, _ := asn1.MarshalWithParams() - //t.store.Add(Payload(b)) - // - //fmt.Println(b) -} - -//func FindUnique() { -// fmt.Println() -// -// //for i, _ := range c { -// // fmt.Println(i) -// //} -// -//} diff --git a/solutions/model.go b/solutions/model.go index 2944818..8b41fb6 100644 --- a/solutions/model.go +++ b/solutions/model.go @@ -1,20 +1,16 @@ package solutions -type UserName string - -type TaskName string - -type Result int - -type Payload string - -type solutionResult struct { - Payload []Payload `json:"payload"` - Results []Result `json:"results"` +type Task struct { + Payload []int `json:"payload"` + Result []int `json:"result"` } -type Solution struct { - UserName UserName `json:"user_name"` - TaskName TaskName `json:"task_name"` - Results solutionResult `json:"results"` -} +const ( + userName string = "il_linberg" + Port string = ":1701" + SolutionURL string = "kuvaev-ituniversity.vps.elewise.com" + Rotation string = "Циклическая ротация" + FindUnique string = "Чудные вхождения в массив" + Cons string = "Проверка последовательности" + Missing string = "Поиск отсутствующего элемента" +) diff --git a/solutions/service.go b/solutions/service.go index e1e0aea..41003ae 100644 --- a/solutions/service.go +++ b/solutions/service.go @@ -1 +1,54 @@ package solutions + +import ( + "encoding/json" + "io" + "log" + "net/http" +) + +func ProcessTask(taskName string) ([]byte, error) { + //получаем условия для задач + var taskCases []json.RawMessage + err := getCases(taskName, taskCases) + if err != nil { + log.Fatalln(err) + return []byte{}, err + } + //решение задач + // + + //сборка результата + // + + //должен вернуть вывод решения + return nil, nil +} + +func getCases(taskName string, taskCases []json.RawMessage) error { + + response, err := http.Get("http://" + SolutionURL + "/tasks/" + taskName) + if err != nil { + log.Fatalln(err) + return err + } + defer func(Body io.ReadCloser) { + err := Body.Close() + if err != nil { + log.Fatalln(err) + } + }(response.Body) + + payload, err := io.ReadAll(response.Body) + if err != nil { + log.Fatalln(err) + return err + } + + err = json.Unmarshal(payload, &taskCases) + if err != nil { + log.Fatalln(err) + return err + } + return nil +} diff --git a/solutions/store.go b/solutions/store.go index 1b12b53..e1e0aea 100644 --- a/solutions/store.go +++ b/solutions/store.go @@ -1,9 +1 @@ package solutions - -func NewPayloadStore() solutionResult { - return solutionResult{Payload: []Payload{}} -} - -func (c *solutionResult) Add(payload Payload) { - c.Payload = append(c.Payload, payload) -}