Skip to content

Commit ef00fc7

Browse files
stakhovvgouriano
authored andcommitted
Simplify Fetch request; JIRA:RW-2355
git-svn-id: https://anonsvn.ncbi.nlm.nih.gov/repos/v1/trunk/c++@103244 78c7ea69-d796-4a43-9a09-de51944f1b03
1 parent 400c71d commit ef00fc7

File tree

1 file changed

+18
-9
lines changed

1 file changed

+18
-9
lines changed

src/objtools/edit/eutils_updater.cpp

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@
3939
#include <objtools/eutils/efetch/PubmedBookArticle.hpp>
4040
#include <objtools/eutils/efetch/PubmedBookArticleSet.hpp>
4141

42-
#include <objtools/eutils/api/efetch.hpp>
4342
#include <objtools/eutils/api/esearch.hpp>
4443
#include <objtools/eutils/esearch/IdList.hpp>
4544
#include <objects/pubmed/Pubmed_entry.hpp>
@@ -499,19 +498,29 @@ static void Normalize(CPub& pub)
499498
}
500499
}
501500

502-
CRef<CPubmed_entry> CEUtilsUpdater::x_GetPubmedEntry(TEntrezId pmid, EPubmedError* perr)
501+
namespace
503502
{
504-
unique_ptr<CEFetch_Request> req(
505-
new CEFetch_Literature_Request(CEFetch_Literature_Request::eDB_pubmed, m_Ctx)
506-
);
503+
struct CFetch_Request : CEUtils_Request {
504+
TEntrezId m_pmid;
505+
CFetch_Request(CRef<CEUtils_ConnContext>& ctx, TEntrezId pmid) :
506+
CEUtils_Request(ctx, "efetch.fcgi"), m_pmid(pmid)
507+
{
508+
SetRequestMethod(CEUtils_Request::eHttp_Get);
509+
}
510+
string GetQueryString() const override
511+
{
512+
return "db=pubmed&retmode=xml&id="s + to_string(m_pmid);
513+
}
514+
};
515+
}
507516

508-
req->SetRequestMethod(CEUtils_Request::eHttp_Get);
509-
req->GetId().AddId(NStr::NumericToString(pmid));
510-
req->SetRetMode(CEFetch_Request::eRetMode_xml);
517+
CRef<CPubmed_entry> CEUtilsUpdater::x_GetPubmedEntry(TEntrezId pmid, EPubmedError* perr)
518+
{
519+
CFetch_Request req(m_Ctx, pmid);
511520

512521
eutils::CPubmedArticleSet pas;
513522
string content;
514-
req->Read(&content);
523+
req.Read(&content);
515524
try {
516525
CNcbiIstrstream(content) >> MSerial_Xml >> pas;
517526
} catch (const CSerialException&) {

0 commit comments

Comments
 (0)