@@ -260,7 +260,6 @@ func (s *server) removeFileInWorkspace(w http.ResponseWriter, r *http.Request) {
260260type readFileInWorkspaceRequest struct {
261261 workspaceCommonRequest `json:",inline"`
262262 FilePath string `json:"filePath"`
263- WithLatestRevisionID bool `json:"withLatestRevisionID"`
264263}
265264
266265func (s * server ) readFileInWorkspace (w http.ResponseWriter , r * http.Request ) {
@@ -282,8 +281,39 @@ func (s *server) readFileInWorkspace(w http.ResponseWriter, r *http.Request) {
282281 prg ,
283282 s .getServerToolsEnv (reqObject .Env ),
284283 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 ,
287317 ),
288318 )
289319 if err != nil {
0 commit comments