A lexicon-driven AppView for ATProto. happyview.dev
backfill firehose jetstream atproto appview oauth lexicon
8
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix: force records from `db` to serialize to arrays

Trezy 0b89c5de a1cd2b6a

+22 -5
+22 -5
src/lua/db_api.rs
··· 52 52 }) 53 53 .collect(); 54 54 55 - let mut result = json!({ "records": records }); 55 + let record_values: Vec<mlua::Value> = records 56 + .iter() 57 + .map(|r| lua.to_value(r)) 58 + .collect::<LuaResult<_>>()?; 59 + let records_table = lua.create_sequence_from(record_values)?; 60 + records_table.set_metatable(Some(lua.array_metatable()))?; 61 + 62 + let result_table = lua.create_table()?; 63 + result_table.set("records", records_table)?; 56 64 if has_next { 57 65 let next_cursor = (offset + limit).to_string(); 58 - result.as_object_mut().unwrap().insert("cursor".to_string(), json!(next_cursor)); 66 + result_table.set("cursor", next_cursor)?; 59 67 } 60 68 61 - lua.to_value(&result) 69 + Ok(mlua::Value::Table(result_table)) 62 70 } 63 71 })?; 64 72 db_table.set("query", query_fn)?; ··· 128 136 }) 129 137 .collect(); 130 138 131 - let result = json!({ "records": records }); 132 - lua.to_value(&result) 139 + let record_values: Vec<mlua::Value> = records 140 + .iter() 141 + .map(|r| lua.to_value(r)) 142 + .collect::<LuaResult<_>>()?; 143 + let records_table = lua.create_sequence_from(record_values)?; 144 + records_table.set_metatable(Some(lua.array_metatable()))?; 145 + 146 + let result_table = lua.create_table()?; 147 + result_table.set("records", records_table)?; 148 + 149 + Ok(mlua::Value::Table(result_table)) 133 150 } 134 151 })?; 135 152 db_table.set("search", search_fn)?;