[8182] | 1 | #include "listrecsaction.h"
|
---|
| 2 |
|
---|
| 3 | #include "oaitools.h"
|
---|
| 4 | #include "recordaction.h"
|
---|
| 5 |
|
---|
| 6 | bool listrecsaction::validateAction(recptproto *protocol, oaiargs ¶ms)
|
---|
| 7 | {
|
---|
| 8 | text_t meta = params["metadataPrefix"];
|
---|
| 9 | int numArgs = 1; // 1st arg (Verb=ListRecords) must be present for us to be here
|
---|
| 10 |
|
---|
| 11 | if (!abstractlistaction::validateAction(protocol, params, numArgs)) {
|
---|
| 12 | return false;
|
---|
| 13 | }
|
---|
| 14 |
|
---|
| 15 | // metadataPrefix is required - if it's not there, throw an error. Note that the arg isn't
|
---|
| 16 | // required (or allowed) if a resumptionToken is given, but as we don't handle resumption
|
---|
| 17 | // tokens this is sufficient. When we DO handle the tokens, this will have to change.
|
---|
| 18 | if (meta == "") {
|
---|
| 19 | this->errorType = "badArgument";
|
---|
| 20 | return false;
|
---|
| 21 | }
|
---|
| 22 | else {
|
---|
[9608] | 23 | ++numArgs; // If it's there, increase arg count
|
---|
[8182] | 24 | }
|
---|
| 25 |
|
---|
| 26 | // The number of valid args should be exactly equal to the number of args actually there.
|
---|
| 27 | // If not, throw a 'badArgument' error.
|
---|
| 28 | if (numArgs != params.getSize()) {
|
---|
| 29 | this->errorType = "badArgument";
|
---|
| 30 | return false;
|
---|
| 31 | }
|
---|
| 32 |
|
---|
| 33 | if (this->formatNotSupported(meta)) { // Check that the metadataPrefix is supported
|
---|
| 34 | this->errorType = "cannotDisseminateFormat";
|
---|
| 35 | this->record_action->setErrorType(this->errorType);
|
---|
| 36 | return false;
|
---|
| 37 | }
|
---|
| 38 |
|
---|
| 39 | return true;
|
---|
| 40 | }
|
---|
| 41 |
|
---|
| 42 | //-----------------------------------------------------------------------------------------------
|
---|
| 43 |
|
---|
| 44 | bool listrecsaction::output_document(ostream &output, recptproto *protocol, const text_t &collection,
|
---|
| 45 | const text_t &OID, const text_t &metadataPrefix)
|
---|
| 46 | {
|
---|
| 47 | this->record_action->output_record(output, protocol, collection, OID, metadataPrefix);
|
---|
| 48 | return true;
|
---|
| 49 | }
|
---|
| 50 |
|
---|
| 51 | //-----------------------------------------------------------------------------------------------
|
---|
| 52 |
|
---|
| 53 |
|
---|
| 54 |
|
---|