NYYU Logo
APIUser Tier

Get User Tiers

Retrieve all tier configurations from the gamification system

📋

Get User Tiers

Retrieve all tier level configurations

Overview

The getUserTiers query retrieves all tier levels configured in your gamification system, including tier names, point requirements, and visual badges. Use this to display progression paths or user achievement systems.

GraphQL Schema

🔍
Query Definition
Returns array of all tier configurations
getUserTiers: [Tier]

Parameters

No Parameters Required

This query accepts no parameters and returns all configured tier levels in the system.

Return Type

📦
Tier Array
List of all tier objects with complete details
type Tier {
  level: Int!
  name: String
  point: Float
  svg: String
}
Core Fields
level - Unique tier identifier
name - Tier display name
Display Fields
point - Points required
svg - Badge SVG content

Example Query

query {
  getUserTiers {
    level
    name
    point
    svg
  }
}

Example Response

Success Response
Complete tier progression structure
{
  "data": {
    "getUserTiers": [
      {
        "level": 1,
        "name": "Bronze",
        "point": 1000,
        "svg": "<svg>...</svg>"
      },
      {
        "level": 2,
        "name": "Silver",
        "point": 5000,
        "svg": "<svg>...</svg>"
      },
      {
        "level": 3,
        "name": "Gold",
        "point": 15000,
        "svg": "<svg>...</svg>"
      },
      {
        "level": 4,
        "name": "Platinum",
        "point": 50000,
        "svg": "<svg>...</svg>"
      },
      {
        "level": 5,
        "name": "Diamond",
        "point": 150000,
        "svg": "<svg>...</svg>"
      }
    ]
  }
}

Use Cases

🎯
Progression Display

Show users the full tier ladder with point requirements for each level

🏆
Achievement Badges

Display tier badges in user profiles and leaderboards

📊
Progress Tracking

Calculate user progress toward next tier level

🎨
UI Rendering

Render tier-specific visuals using SVG badges

Implementation Example

💻
Client Implementation
Display tier progression in your application
// Fetch all tier levels
const { data } = await client.query({
  query: gql`
    query GetUserTiers {
      getUserTiers {
        level
        name
        point
        svg
      }
    }
  `
});

// Calculate user progress
const userPoints = 7500; // Current user points
const currentTier = data.getUserTiers.find(tier =>
  userPoints >= tier.point
);
const nextTier = data.getUserTiers.find(tier =>
  userPoints < tier.point
);

// Display progress
if (nextTier) {
  const progress = (userPoints / nextTier.point) * 100;
  console.log(`Progress to ${nextTier.name}: ${progress}%`);
}

// Render tier badges
data.getUserTiers.forEach(tier => {
  const badge = document.createElement('div');
  badge.innerHTML = tier.svg;
  badge.setAttribute('title', `${tier.name} - ${tier.point} points`);
  tierContainer.appendChild(badge);
});

Best Practices

💡
Cache Tier Data

Tier configurations rarely change - cache the results to reduce API calls

🎯
Sort by Level

Always display tiers sorted by level for consistent user experience

🖼️
Optimize SVG Display

Consider rendering SVG badges as React components or using dangerouslySetInnerHTML with sanitization

📱
Mobile-Friendly Display

Create responsive tier displays that work well on all screen sizes

Public Query

This query is accessible to all authenticated users and does not require admin privileges.