@@ -260,7 +260,6 @@ func (s *server) removeFileInWorkspace(w http.ResponseWriter, r *http.Request) {
260
260
type readFileInWorkspaceRequest struct {
261
261
workspaceCommonRequest `json:",inline"`
262
262
FilePath string `json:"filePath"`
263
- WithLatestRevisionID bool `json:"withLatestRevisionID"`
264
263
}
265
264
266
265
func (s * server ) readFileInWorkspace (w http.ResponseWriter , r * http.Request ) {
@@ -282,8 +281,39 @@ func (s *server) readFileInWorkspace(w http.ResponseWriter, r *http.Request) {
282
281
prg ,
283
282
s .getServerToolsEnv (reqObject .Env ),
284
283
fmt .Sprintf (
285
- `{"workspace_id": "%s", "file_path": "%s", "with_latest_revision_id": "%v"}` ,
286
- reqObject .ID , reqObject .FilePath , reqObject .WithLatestRevisionID ,
284
+ `{"workspace_id": "%s", "file_path": "%s"}` ,
285
+ reqObject .ID , reqObject .FilePath ,
286
+ ),
287
+ )
288
+ if err != nil {
289
+ writeError (logger , w , http .StatusInternalServerError , fmt .Errorf ("failed to run program: %w" , err ))
290
+ return
291
+ }
292
+
293
+ writeResponse (logger , w , map [string ]any {"stdout" : out })
294
+ }
295
+
296
+ func (s * server ) readFileWithRevisionInWorkspace (w http.ResponseWriter , r * http.Request ) {
297
+ logger := gcontext .GetLogger (r .Context ())
298
+ var reqObject readFileInWorkspaceRequest
299
+ if err := json .NewDecoder (r .Body ).Decode (& reqObject ); err != nil {
300
+ writeError (logger , w , http .StatusBadRequest , fmt .Errorf ("invalid request body: %w" , err ))
301
+ return
302
+ }
303
+
304
+ prg , err := loader .Program (r .Context (), s .getWorkspaceTool (reqObject .workspaceCommonRequest ), "Read File With Revision In Workspace" , loader.Options {Cache : s .client .Cache })
305
+ if err != nil {
306
+ writeError (logger , w , http .StatusInternalServerError , fmt .Errorf ("failed to load program: %w" , err ))
307
+ return
308
+ }
309
+
310
+ out , err := s .client .Run (
311
+ r .Context (),
312
+ prg ,
313
+ s .getServerToolsEnv (reqObject .Env ),
314
+ fmt .Sprintf (
315
+ `{"workspace_id": "%s", "file_path": "%s", "with_latest_revision_id": "true"}` ,
316
+ reqObject .ID , reqObject .FilePath ,
287
317
),
288
318
)
289
319
if err != nil {
0 commit comments