Added function in fdb

Merged Vivek Naik requested to merge added_functions_fdb into devbranch
Compare and
2 files
+ 81
0
Preferences
File browser
Compare changes
@@ -578,6 +578,49 @@ func (p *PackFile) ReadMedia(recordID string) ([]byte, *gjson.Result, error) {
return dataByte, &metaDataObj, nil
}
func (p *PackFile) ReadMediaByQuery(inFileIndexQueries []string) (map[string][]byte, map[string]gjson.Result, error) {
f := p.Fp
indexData, err := getInFileIndexData(f)
if err != nil {
loggermdl.LogError("index data not found: ", f.Name(), err)
return nil, nil, err
}
indexRows := indexData
// indexRows := indexData.Get(`#[fileType==` + requestedFileType + `]#`)
for i := 0; i < len(inFileIndexQueries); i++ {
indexRows = indexRows.Get(inFileIndexQueries[i] + "#")
}
if indexRows.String() == "" {
loggermdl.LogError("data not found")
return nil, nil, errormdl.Wrap("data not found")
}
dataMap := make(map[string][]byte, 0)
metaDataMap := make(map[string]gjson.Result, 0)
for _, indexRow := range indexRows.Array() {
startOffSet := indexRow.Get("startOffset").Int()
dataSize := indexRow.Get("dataSize").Int()
if startOffSet == 0 || dataSize == 0 {
return nil, nil, errormdl.Wrap("data not found")
}
dataByte, err := getFileDataFromPack(f, startOffSet, dataSize, nil, nil)
if err != nil {
loggermdl.LogError(err)
return nil, nil, err
}
recordID := indexRow.Get("recordID").String()
if recordID == "" {
return nil, nil, errormdl.Wrap("record id not found")
}
data, _ := sjson.Set("", "requiredData", indexRow.Get("requiredData").String())
// data, _ = sjson.Set(data, "infileIndex", indexData.String())
metaDataObj := gjson.Parse(data)
dataMap[recordID] = dataByte
metaDataMap[recordID] = metaDataObj
}
return dataMap, metaDataMap, nil
}
func (p *PackFile) RemoveMedia(recordID string) error {
queries := []string{`#[recordID=` + recordID + `]`}
_, err := p.Remove(queries)