Skip to content

Commit 81dff3e

Browse files
author
Grahame Grieve
committed
Fix return from NPM search
1 parent 136fa5f commit 81dff3e

2 files changed

Lines changed: 26 additions & 9 deletions

File tree

release-notes.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
## Change Notes for {ver}:
22

3-
*
3+
* Fix return from NPM search
44

55
## Conformance Notes:
66

7-
*
7+
* tx.fhir.org passed 305 HL7 terminology service tests (mode 'tx.fhir.org', tests v1.7.7-SNAPSHOT, runner v6.5.14)

server/endpoint_packages.pas

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ TFHIRPackageWebServer = class (TFhirWebServerEndpoint)
9393
procedure servePage(fn : String; request : TIdHTTPRequestInfo; response : TIdHTTPResponseInfo; secure : boolean);
9494
procedure serveDownload(secure : boolean; id, version : String; response : TIdHTTPResponseInfo);
9595
procedure serveVersions(id, sort : String; secure : boolean; request : TIdHTTPRequestInfo; response : TIdHTTPResponseInfo);
96-
procedure serveSearch(name, dependson, canonicalPkg, canonicalUrl, FHIRVersion, dependency, sort : String; secure : boolean; request : TIdHTTPRequestInfo; response : TIdHTTPResponseInfo);
96+
procedure serveSearch(name, dependson, canonicalPkg, canonicalUrl, FHIRVersion, dependency, sort : String; secure, objWrapper : boolean; request : TIdHTTPRequestInfo; response : TIdHTTPResponseInfo);
9797
procedure serveUpdates(date : TFslDateTime; secure : boolean; response : TIdHTTPResponseInfo);
9898
procedure serveProtectForm(request : TIdHTTPRequestInfo; response : TIdHTTPResponseInfo; id : String);
9999
procedure serveLog(request : TIdHTTPRequestInfo; response : TIdHTTPResponseInfo);
@@ -1208,12 +1208,13 @@ function sel(this, that : String) : string;
12081208
end;
12091209

12101210
procedure TFHIRPackageWebServer.serveSearch(name, dependson, canonicalPkg, canonicalUrl,
1211-
FHIRVersion, dependency, sort: String; secure: boolean;
1211+
FHIRVersion, dependency, sort: String; secure, objWrapper: boolean;
12121212
request: TIdHTTPRequestInfo; response: TIdHTTPResponseInfo);
12131213
var
12141214
conn : TFDBConnection;
12151215
json : TJsonArray;
1216-
v : TJsonObject;
1216+
v, obj, w : TJsonObject;
1217+
e : TJsonNode;
12171218
filter, src, dep : String;
12181219
vars : TFslMap<TFHIRObject>;
12191220
list : TFslList<TJsonObject>;
@@ -1340,10 +1341,26 @@ procedure TFHIRPackageWebServer.serveSearch(name, dependson, canonicalPkg, canon
13401341
end
13411342
else
13421343
begin
1343-
src := TJsonWriterDirect.writeArrayStr(json, true);
1344+
if objWrapper then
1345+
begin
1346+
obj := TJsonObject.create;
1347+
try
1348+
for e in json do
1349+
begin
1350+
w := TJsonObject.create;
1351+
obj.forceArr['objects'].add(w);
1352+
w.obj['package'] := (e as TJsonObject).link;
1353+
end;
1354+
src := TJsonWriterDirect.writeObjectStr(obj, true);
1355+
finally
1356+
obj.free;
1357+
end;
1358+
end
1359+
else
1360+
src := TJsonWriterDirect.writeArrayStr(json, true);
13441361
response.ContentType := 'application/json';
13451362
response.ContentText := src;
1346-
end;
1363+
end;
13471364
finally
13481365
json.free;
13491366
deps.free;
@@ -1666,7 +1683,7 @@ function TFHIRPackageWebServer.doRequest(AContext: TIdContext; request: TIdHTTPR
16661683
begin
16671684
if not pm.has('lastUpdated') then
16681685
begin
1669-
serveSearch(pm['name'], pm['dependson'], pm['pkgcanonical'], pm['canonical'], pm['fhirversion'], pm['dependency'], pm['sort'], secure, request, response);
1686+
serveSearch(pm['name'], pm['dependson'], pm['pkgcanonical'], pm['canonical'], pm['fhirversion'], pm['dependency'], pm['sort'], secure, false, request, response);
16701687
result := 'Search Packages';
16711688
end
16721689
else if pm['lastUpdated'].startsWith('-') then
@@ -1682,7 +1699,7 @@ function TFHIRPackageWebServer.doRequest(AContext: TIdContext; request: TIdHTTPR
16821699
end
16831700
else if (request.CommandType = hcGET) and (request.Document = '/packages/-/v1/search') then
16841701
begin
1685-
serveSearch(pm['text'], pm['dependson'], pm['pkgcanonical'], pm['canonical'], pm['fhirversion'], pm['dependency'], pm['sort'], secure, request, response);
1702+
serveSearch(pm['text'], pm['dependson'], pm['pkgcanonical'], pm['canonical'], pm['fhirversion'], pm['dependency'], pm['sort'], secure, true, request, response);
16861703
result := 'Search Packages (v1)';
16871704
end
16881705
else if (request.CommandType = hcGET) and (request.Document = '/packages/log') then

0 commit comments

Comments
 (0)