실시간 채팅 하루만 가져오게 일단 수정
.gte('created_at', new Date().toISOString().split('T')[0])
.lt('created_at', new Date(new Date().setDate(new Date().getDate() + 1)).toISOString().split('T')[0])
해당 수파베이스 매서드
.gte
.lt
api 에 친절하게 나와있는데 gte => Gteater than or equal to
lt less than
이라서 이상~ 미만 설정이다. (초과 미만은 gt ~ lt 쓰면 됨)
당일 날짜를 쪼개서 가져오는 매서드
검색 관련!!
1. 모든 데이터를 가져와서 => 클라이언트 사이드에서 uesQeury에 데이터 담아서 그걸 통해서 filter 할 생각이었음
=> 데이터가 DB로 들어가면서 로직이 바뀐당.
수파베이스 서치 매서드를 쓰기로 했다.
Post로 받고 어찌저찌 하는 도중
TypeError: Failed to execute 'json' on 'Response': body stream already read
console.log(response.json());
return response.json();
data 에 안 담고 일단 그냥 return 시켰는데 콘솔로 한 번 더 찍으려고 해서 그런 듯. json은 한 번만 호출된단다. console 삭제
"text search configuration \"korean\" does not exist
{
type: 'websearch',
config: 'korean'
}
config에 english 여서 korean으로 바꿨더니 안 된단다... 영어만 되는 모양. 아쉽다.
에러3)

data에..... 왜 쟤가 ? 네트워크 확인해보니 요청은 잘갔다. 200번 안녕. 초기값을 배열로 해놓은 터라 (맵으로 뿌려야 하니까~.~) 왜인지 고민.
그것은 바로바로 ~ 서버에서 기재해놓은 값이랑 클라이언트에서 기재해놓은 값이 달라서!!!! ㅋㅋㅋㅋㅋㅋ 서버에서는 inputValue, 클라이언트에서는 inptuValue 였다. ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 굉장히 자랑스럽게 inptuValue : searchTerm 하고 있었다. ^^
=> 리팩토링 다시 시작
textSearch는 영어만 지원해서 includes 된 한국어를 잘 지원하지 못한다. 수파베이스 ai에 물어보니 다른 매서드가 있어서 그걸로 바꾸는 중
조건식 줘야 하는데 진짜 뭔 타입 오류가 너무 나서 왜 이러는지 알아보는 중
const getConditionalSearch = (
tableName: string,
searchValue: string
): string => {
tableName === 'market'
? `시장명.ilke.%${searchValue}, 도로명주소.ilike.%${searchValue}`
: `food_name.ilke.%${searchValue}, category.ilike.%${searchValue}`;
};
근데 return 썼더니 감쪽같이 사라짐 어흐흑.... return 진짜진짜진짜 중요하다....
그거 외에도, 저렇게 만든 함수를 집어넣으려고 하니까?
(tableName: string, searchValue: string) => string' 형식의 인수는 'string' 형식의 매개 변수에 할당될 수 없습니다.
함수... 인데 string으로 집어넣으려고 해서 그런 것 같다. 근데... 근데 어캄. => string으로 알려줬는데도 안 되는 것인가?ㅠㅡㅠ
변수에 넣었다.
타입 지정 관련
as const 읽기 전용
1) 테이블을 그냥 string으로 넣을시 잘못된 접근이 있을 수 있다. (보안)
2) 허락된 테이블 배열로 넣고
3) 각각 타입을 지정 / as const / as typeof ###[number] 배열이니까

매서드 잘못 씀 ㅋㅋ
ilike 다
const getConditionalSearch = (
tableValue: AllowedTable,
searchValue: string
): string => {
return tableValue === 'markets'
? `시장명.ilike.%${searchValue}%,도로명주소.ilike.%${searchValue}%`
: `food_name.ilike.%${searchValue}%,category.ilike.%${searchValue}%`;
};
% 이거란다. 어흐흑ㅜㅜ .... % 빼먹었더니 안 되니까 잘 조심히 잘 보고 하기........
const getConditionalSearch = (
tableValue: AllowedTable,
searchValue: string
): string => {
if (tableValue === 'markets') {
return `시장명.ilike.%${searchValue}%,도로명주소.ilike.%${searchValue}%`;
} else if (tableValue === 'local-food') {
return `food_name.ilike.%${searchValue}%,category.ilike.%${searchValue}%`;
} else {
return '';
}
};
else 안 붙이니까 string이 아니랜다. 그래서 else return '' 반환