fix saving and project improvments

This commit is contained in:
Aleksandr Trushkin
2024-01-25 16:42:08 +03:00
parent f94d39b124
commit 6fe250896c
17 changed files with 692 additions and 438 deletions

View File

@ -1,6 +1,8 @@
package fbs
import (
"encoding/base64"
"fmt"
"sync"
"git.loyso.art/frx/eway/internal/entity"
@ -21,8 +23,8 @@ func getBuilder() *flatbuffers.Builder {
}
func putBuilder(builder *flatbuffers.Builder) {
builder.Reset()
builderPool.Put(builder)
// builder.Reset()
// builderPool.Put(builder)
}
func MakeDomainGoodItems(in ...entity.GoodsItem) []byte {
@ -62,7 +64,10 @@ func makeDomainGoodItem(builder *flatbuffers.Builder, in entity.GoodsItem) flatb
sku := builder.CreateString(in.Articul)
photo := builder.CreateString(in.Photo)
name := builder.CreateString(in.Name)
desc := builder.CreateString(in.Description)
descBase64 := base64.RawStdEncoding.EncodeToString([]byte(in.Description))
desc := builder.CreateString(descBase64)
var cat flatbuffers.UOffsetT
if in.Category != "" {
cat = builder.CreateString(in.Category)
@ -90,12 +95,18 @@ func makeDomainGoodItem(builder *flatbuffers.Builder, in entity.GoodsItem) flatb
return GoodItemEnd(builder)
}
func ParseGoodsItem(data []byte) (item entity.GoodsItem) {
func ParseGoodsItem(data []byte) (item entity.GoodsItem, err error) {
itemFBS := GetRootAsGoodItem(data, 0)
item.Articul = string(itemFBS.Sku())
item.Photo = string(itemFBS.Photo())
item.Name = string(itemFBS.Name())
item.Description = string(itemFBS.Description())
description, err := base64.RawStdEncoding.DecodeString(string(itemFBS.Description()))
if err != nil {
return item, fmt.Errorf("decoding description from base64: %w", err)
}
item.Description = string(description)
if value := itemFBS.Category(); value != nil {
item.Category = string(value)
}
@ -108,7 +119,7 @@ func ParseGoodsItem(data []byte) (item entity.GoodsItem) {
item.Cart = itemFBS.Cart()
item.Stock = int(itemFBS.Stock())
return item
return item, nil
}
func ParseCategory(data []byte) (category entity.Category) {