RobinvdVleuten/node-nntp

View on GitHub
lib/response.js

Summary

Maintainability
A
0 mins
Test Coverage
'use strict';

var Response = function (status, message) {
  this.status = status;
  this.message = message;
  this.lines = [];
};

Response.GROUP_SELECTED = 211; // RFC 3977
Response.NO_SUCH_GROUP = 411;  // RFC 3977
Response.NO_SUCH_ARTICLE = 430; // RFC 3977
Response.ARTICLE_RETRIEVED = 220; // RFC 3977

Response.createFromString = function (string) {
  var matches = /^(\d{3}) ([\S\s]+)$/g.exec(string.trim());
  if (!matches) {
    throw new Error('Invalid response given: ' + string);
  }

  if (matches[1] < 100 || matches[1] >= 600) {
    throw new Error('Invalid status code given: ' + matches[1]);
  }

  return new Response(parseInt(matches[1], 10), matches[2]);
};

module.exports = Response;