|
39 | 39 | #include <objtools/eutils/efetch/PubmedBookArticle.hpp>
|
40 | 40 | #include <objtools/eutils/efetch/PubmedBookArticleSet.hpp>
|
41 | 41 |
|
42 |
| -#include <objtools/eutils/api/efetch.hpp> |
43 | 42 | #include <objtools/eutils/api/esearch.hpp>
|
44 | 43 | #include <objtools/eutils/esearch/IdList.hpp>
|
45 | 44 | #include <objects/pubmed/Pubmed_entry.hpp>
|
@@ -499,19 +498,29 @@ static void Normalize(CPub& pub)
|
499 | 498 | }
|
500 | 499 | }
|
501 | 500 |
|
502 |
| -CRef<CPubmed_entry> CEUtilsUpdater::x_GetPubmedEntry(TEntrezId pmid, EPubmedError* perr) |
| 501 | +namespace |
503 | 502 | {
|
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 | +} |
507 | 516 |
|
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); |
511 | 520 |
|
512 | 521 | eutils::CPubmedArticleSet pas;
|
513 | 522 | string content;
|
514 |
| - req->Read(&content); |
| 523 | + req.Read(&content); |
515 | 524 | try {
|
516 | 525 | CNcbiIstrstream(content) >> MSerial_Xml >> pas;
|
517 | 526 | } catch (const CSerialException&) {
|
|
0 commit comments