๐พ Archived View for source.community โบ ckaznocha โบ gemini โบ blob โบ main โบ geminitest โบ recorder.go captured on 2024-02-05 at 09:58:06. Gemini links have been rewritten to link to archived content
โฌ ๏ธ Previous capture (2023-07-10)
-=-=-=-=-=-=-
. ,-. ,-. . . ,-. ,-. ,-. ,-. ,-. ,-,-. ,-,-. . . ,-. . |- . . `-. | | | | | | |-' | | | | | | | | | | | | | | | | | `-' `-' `-^ ' `-' `-' :: `-' `-' ' ' ' ' ' ' `-^ ' ' ' `' `-| /| `-'
git clone https://source.community/ckaznocha/gemini.git
View raw contents of /geminitest/recorder.go (main)
โโโโโฎ 1โ package geminitest 2โ 3โ import ( 4โ "bytes" 5โ "context" 6โ "io" 7โ 8โ "source.community/ckaznocha/gemini" 9โ ) 10โ 11โ // ResponseRecorder may be used in test to capture the output of a Handler. 12โ type ResponseRecorder struct { 13โ Body *bytes.Buffer 14โ Meta string 15โ Code gemini.StatusCode 16โ } 17โ 18โ var _ gemini.ResponseWriter = (*ResponseRecorder)(nil) 19โ 20โ // NewResponseRecorder returns a response recorder ready to use. 21โ func NewResponseRecorder() *ResponseRecorder { 22โ return &ResponseRecorder{ 23โ Body: bytes.NewBuffer(nil), 24โ } 25โ } 26โ 27โ // Failure implements the Failure method of the ResponseWriter interface. 28โ func (r *ResponseRecorder) Failure(ctx context.Context, code gemini.StatusCode, msg string) { 29โ category := code.ToCategory() 30โ if category < gemini.StatusCategoryTemporaryFailure || category > gemini.StatusCategoryPermanentFailure { 31โ code = gemini.StatusPermanentFailure 32โ } 33โ 34โ r.Code = code 35โ r.Meta = msg 36โ } 37โ 38โ // Input implements the Input method of the ResponseWriter interface. 39โ func (r *ResponseRecorder) Input(ctx context.Context, prompt string, isSensitive bool) { 40โ code := gemini.StatusInput 41โ if isSensitive { 42โ code = gemini.StatusSensitiveInput 43โ } 44โ 45โ r.Code = code 46โ r.Meta = prompt 47โ } 48โ 49โ // Redirect implements the Redirect method of the ResponseWriter interface. 50โ func (r *ResponseRecorder) Redirect(ctx context.Context, redirectURL string, isPermanant bool) { 51โ code := gemini.StatusTemporaryRedirect 52โ if isPermanant { 53โ code = gemini.StatusPermanentRedirect 54โ } 55โ 56โ r.Code = code 57โ r.Meta = redirectURL 58โ } 59โ 60โ // Success implements the Success method of the ResponseWriter interface. 61โ func (r *ResponseRecorder) Success(ctx context.Context, mimeType string) io.Writer { 62โ r.Code = gemini.StatusSuccess 63โ r.Meta = mimeType 64โ 65โ return r.Body 66โ } โโโโโฏ
ยท ยท ยท
ยฉ 2024 source.community