1- import { sdkFromKey , validateTrieveAuth } from "app/auth" ;
1+ import { validateTrieveAuth } from "app/auth" ;
22import { getTrieveBaseUrlEnv } from "app/env.server" ;
33import { tryCatch } from "app/loaders" ;
44import { Hono } from "hono" ;
55import { nanoid } from "nanoid" ;
66import { ChunkReqPayload } from "trieve-ts-sdk" ;
77
8- type Review = {
8+ type JudgeMeReviewer = {
9+ id : string ;
10+ email : string ;
11+ name : string ;
12+ external_id : number ;
13+ phone ?: string ;
14+ tags ?: string [ ] ;
15+ accepts_marketing ?: boolean ;
16+ unsubscribed_at ?: string ;
17+ } ;
18+
19+ type JudgeMeReview = {
920 id : number ;
1021 title : string ;
1122 body : string ;
1223 rating : number ;
1324 product_external_id : number ;
14- // reviewer: [Object] ;
25+ reviewer : JudgeMeReviewer ;
1526 source : string ;
16- curated : string ;
27+ curated : "not-yet" | "ok" | "spam" ;
1728 published : boolean ;
1829 hidden : boolean ;
1930 verified : string ;
@@ -151,7 +162,6 @@ export const judgeMe = new Hono()
151162 let page = 1 ;
152163 const perPage = 100 ;
153164 let isDone = false ;
154-
155165 while ( ! isDone ) {
156166 const params = new URLSearchParams ( {
157167 page : page . toString ( ) ,
@@ -177,7 +187,7 @@ export const judgeMe = new Hono()
177187 const reviews = ( await response . json ( ) ) as {
178188 current_page : number ;
179189 per_page : number ;
180- reviews : Review [ ] ;
190+ reviews : JudgeMeReview [ ] ;
181191 } ;
182192
183193 if ( reviews . reviews . length === 0 ) {
@@ -186,6 +196,7 @@ export const judgeMe = new Hono()
186196 }
187197
188198 const chunks = reviews . reviews . map ( transformReviewToChunk ) ;
199+ console . log ( `Sending ${ JSON . stringify ( chunks ) } chunks to Trieve` ) ;
189200
190201 fetch ( `${ getTrieveBaseUrlEnv ( ) } /api/chunk` , {
191202 method : "POST" ,
@@ -259,10 +270,11 @@ export const judgeMe = new Hono()
259270 return c . json ( { reviewCount : 0 } ) ;
260271 } ) ;
261272
262- const transformReviewToChunk = ( review : Review ) : ChunkReqPayload => {
273+ const transformReviewToChunk = ( review : JudgeMeReview ) : ChunkReqPayload => {
263274 return {
264- chunk_html : review . title + " \n\n" + review . body ,
275+ chunk_html : `This is a Review from: ${ review . reviewer . name } from ${ review . created_at } . This review was given a rating of ${ review . rating } /5. \n\n<h1> ${ review . title } </h1>\n\n<p> ${ review . body } .</p>` ,
265276 group_tracking_ids : [ review . product_external_id . toString ( ) ] ,
277+ upsert_by_tracking_id : true ,
266278 metadata : {
267279 rating : review . rating ,
268280 } ,
0 commit comments