WizardFactory / BlogSyncer

one write posting all of the world
Apache License 2.0
3 stars 10 forks source link

Fixed #312 etags for google #345

Closed neoqmin closed 8 years ago

neoqmin commented 8 years ago
google ETag와 관련하여 아래의 내용을 추가했습니다.

1) 전역변수로 blogETags 배열 추가

var blogETags = [];

2) request의 숨은 파라메터 arguments[2]에 etag를 받아 처리할 수 있도록 추가

dynHeaders.headers["If-None-Match"] = arguments[2];

3) response의 header에서 etag 추출

blogETags[blogId.toString()] = res.headers.etag;

4) statusCode === 304일때 아무처리도 하지 않고 return;

※ blogETags가 배열이기 때문에 숫자가 들어가지 않도록 toString()을 사용했습니다. ※ mocha 테스트에서는 에러가 발생하지 않았습니다. ※ etag관련하여 따로 js파일을 만들어 테스트 했습니다.(API 할당 받음)

neoqmin commented 8 years ago
아래와 같이 추가 수정하였습니다.

1) package.json 모듈 업데이트

mongoose : ~4.1.6
request : ~2.61.0

2) blogBot.js 에 304 error 처리 추가

if(response.statusCode === 304) {
    rcvPosts = new bF.BotPostList(providerName, blogId);
} else {
    rcvPosts = JSON.parse(body);
}

3) google.js 의 return 수정(body는 undefined)

if(response.statusCode === 304) {
    return res.status(304).send(body);
}