Platform.api.getRankings()

스코어를 기준으로 한 콘텐츠의 사용자 랭킹 정보를 조회한다.

구문

Platform.api.getRankings(condition, [mock])

매개변수

  • condition [선택]
    조회 조건 Object
    • order: [선택] 정렬 기준. 'ASC'  또는 'DESC'
      • 'ASC': 스코어 증가 순으로 정렬
      • 'DESC': 스코어 감소 순으로 정렬. 기본값.
    • candidate: [선택]  순위 선정 대상
      • 'COMPLETER': 마지막 단계까지 끝낸 사용자만. 기본값.
      • 'ALL': 1단계라도 끝낸 사용자 모두.
    • rows: [선택 상위 최대 랭킹 갯수. 1 ~ 100. 기본값 10.
  • 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} 완료 단계들 스코어 합계

실패 시

  • 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);
      });
   });

2023. 11. 15 오전 11:34:23 편집