Initial migration
This commit is contained in:
commit
43760ba70f
7 changed files with 75 additions and 0 deletions
10
MANIFEST.md
Normal file
10
MANIFEST.md
Normal file
|
@ -0,0 +1,10 @@
|
|||
# Useful links
|
||||
|
||||
## Go links
|
||||
|
||||
- [Project structure](https://go.dev/doc/modules/layout)
|
||||
- [String literals](https://go.dev/ref/spec#String_literals)
|
||||
|
||||
## Database
|
||||
|
||||
- [Драйвер для работы с postgresql](https://github.com/jackc/pgx/wiki/Getting-started-with-pgx)
|
10
README.md
Normal file
10
README.md
Normal file
|
@ -0,0 +1,10 @@
|
|||
# Food entries parser
|
||||
Задача прострая: упростить процесс создания отчета по еде.
|
||||
|
||||
# Процесс
|
||||
1. На вход дается отчет еды за день
|
||||
2. Приложение разбивает по строкам входные данные
|
||||
3. Пытается распарсить полученную строку
|
||||
3.1. В случае успеха формирует объект типа "Объект питания"
|
||||
3.2. В случае неуспеха данные склдываются в *кучу*, где ждет ручной обработки
|
||||
4. Обработанные объекты записываются в базу данных
|
5
TODO.md
Normal file
5
TODO.md
Normal file
|
@ -0,0 +1,5 @@
|
|||
# Общие моменты
|
||||
- [ ] Написать парсер строк отчета:
|
||||
- [ ] Разбиение отчета на строки
|
||||
- [ ] Попробовать написать шаблон разобра строки
|
||||
- [ ] Разбить данные в структуры
|
3
go.mod
Normal file
3
go.mod
Normal file
|
@ -0,0 +1,3 @@
|
|||
module git.pro100code.ru/food_parser
|
||||
|
||||
go 1.22.5
|
39
main.go
Normal file
39
main.go
Normal file
|
@ -0,0 +1,39 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type FoodEntry struct {
|
||||
Name string
|
||||
Calories float32
|
||||
}
|
||||
|
||||
type ReportEntry struct {
|
||||
Entry FoodEntry
|
||||
Weight int
|
||||
}
|
||||
|
||||
type Report struct {
|
||||
Date string
|
||||
Food []ReportEntry
|
||||
}
|
||||
|
||||
func SplitReport(report string) []string {
|
||||
listOfEntries := strings.Split(report, "\n")
|
||||
return listOfEntries
|
||||
}
|
||||
|
||||
func main() {
|
||||
report, err := os.ReadFile("main_testdata")
|
||||
if err != nil {
|
||||
fmt.Print("Something went wrong")
|
||||
}
|
||||
str := string(report)
|
||||
result := SplitReport(str)
|
||||
for _, element := range result {
|
||||
fmt.Println("Entry: ", element)
|
||||
}
|
||||
}
|
0
main_test.go
Normal file
0
main_test.go
Normal file
8
main_testdata
Normal file
8
main_testdata
Normal file
|
@ -0,0 +1,8 @@
|
|||
Кофе с молоком
|
||||
Две клинских сосиски молочных
|
||||
4 твоих бутера
|
||||
2 хурмы
|
||||
Одно яблоко грени
|
||||
Грамм 250 горбуши горячего копчения
|
||||
Мл 250 вина красного сухого
|
||||
---
|
Loading…
Reference in a new issue