Closed Ko-Eunseo closed 7 months ago
question 생성하기 기능 구현했으나 content가 이상함.
[{"insert":"content가 이상함\n"}]
이런식으로 데이터가 들어온다.
Multifile로 구성해서 보내보았으나 files만 서버에 데이터가 들어오고 body가 들어오지 않음. 현재 아래와 같이 구현해놓은 상황.
Future<void> createQuestion({
required String title,
required String content,
required List<String> tag,
required String userId,
}) async {
try {
final body = <String, dynamic>{
"title": title,
"user": userId,
"tag": tag,
"content": content
};
await pb.collection('qna').create(
body: body,
// files: [
// http.MultipartFile.fromString(
// 'content',
// content,
// ),
// ],
);
} catch (_) {
rethrow;
}
}
찾아보니 지런 형태로 들어오는 게 정상인듯. request를 받아와서 포매팅을 해야하는 것 같음.
포매팅을 하는 건 비효율적으로 보여서(포켓베이스에서도 richText를 지원하는데 굳이 싶어서) html 태그로 변환해서 request하는 방식으로 수정함.
Delta delta = _controller!.document.toDelta();
List<Map<String, dynamic>> deltaList = delta.map((operation) {
return {
"insert": operation.value,
};
}).toList();
var content = deltaToHtmlEncoder(deltaList);
ref.read(createQnaProvider.notifier).setQna(
title: _headerController.value.text,
content: content,
tag: tagList,
userId: userId,
);
이미지는 따로 다루지 않았음.