랭킹 조회
Platform.api.getRankings()
스코어를 기준으로 한 콘텐츠의 사용자 랭킹 정보를 조회한다.
구문
Platform.api.getRankings(condition, [mock])
매개변수
- condition [선택]
조회 조건 Object- order: [선택] 정렬 기준. 'ASC' 또는 'DESC'
- 'ASC': 스코어 증가 순으로 정렬
- 'DESC': 스코어 감소 순으로 정렬. 기본값.
- candidate: [선택] 순위 선정 대상
- 'COMPLETER': 마지막 단계까지 끝낸 사용자만. 기본값.
- 'ALL': 1단계라도 끝낸 사용자 모두.
- rows: [선택 상위 최대 랭킹 갯수. 1 ~ 100. 기본값 10.
- order: [선택] 정렬 기준. 'ASC' 또는 'DESC'
- mock
개발시 응답으로 받을 값. 서비스에 배포된 후에는 무시된다.- 성공 또는 실패값. 아래 반환값 참조.
반환 값
응답 객체로 이행하는 Promise 객체.
성공 시
- result: {String} "SUCCESS"
- data: {Object}
- mine: {Object} 현재 사용자의 순위 정보.
candidate 매개변수 값이 'COMPLETER'일 때 현재 사용자가 마지막 단계까지 완료하지 않은 상태이면 내용이 없는 객체가 응답으로 온다.- rank: {Integer} 순위
- nickname: {String} 별명
- tatalStepNo: {Integer} 전체 단계 수
- lastStepNo: {Integer} 최종 완료 단계 번호.
- point: {Object}
- avg: {Float} 성취도. 0 ~ 100점. 완료 단계들의 평균 점수
- min: {Integer} 완료 단계들 중 최저 점수
- max: {Integer} 완료 단계들 중 최고 점수
- sum: {Integer} 완료 단계들 점수 합계
- score: {Object}
- avg: {Float} 완료 단계들의 평균 스코어
- min: {Float} 완료 단계들 중 최저 스코어
- max: {Float} 완료 단계들 중 최고 스코어
- sum: {Float} 완료 단계들 스코어 합계
- rankings: {Array<Object>} 순위 목록
- rank: {Integer} 순위
- nickname: {String} 별명
- tatalStepNo: {Integer} 전체 단계 수
- lastStepNo: {Integer} 최종 완료 단계 번호.
- point: {Object}
- avg: {Float} 성취도. 0 ~ 100점. 완료 단계들의 평균 점수
- min: {Integer} 완료 단계들 중 최저 점수
- max: {Integer} 완료 단계들 중 최고 점수
- sum: {Integer} 완료 단계들 점수 합계
- score: {Object}
- avg: {Float} 완료 단계들의 평균 스코어
- min: {Float} 완료 단계들 중 최저 스코어
- max: {Float} 완료 단계들 중 최고 스코어
- sum: {Float} 완료 단계들 스코어 합계
- mine: {Object} 현재 사용자의 순위 정보.
실패 시
- result: {String} "FAIL"
- message: {String} 오류 내용
- help: {String} 도움말. 없을 수 있음.
예제
Platform.api.getRankings({ order:'ASC', rows: 20 })
.then(function(resposne) {
if (response.result != 'SUCCESS') {
alert(response.message || '조회에 실패하였습니다.');
return;
}
var data = response.data;
console.log('%s님의 순위는 %d위 입니다.', data.mine.nickname, data.mine.rank);
console.log('[순위]');
data.rankings.forEach(function(ranking) {
console.log('%d위 %s님 (%f점)', ranking.rank, ranking.nickname, ranking.score.avg);
});
});