UNPKG

@campusiq/sdk

Version:

Official JavaScript/TypeScript SDK for CampusIQ - A comprehensive school management system API

85 lines 2.33 kB
import { BaseResource } from './base'; import { Grade, ListResponse, PaginationParams } from '../types'; export interface CreateGradeData { studentId: string; courseId: string; assignmentName: string; score: number; maxScore: number; weight: number; category: 'homework' | 'quiz' | 'exam' | 'project' | 'participation'; gradedDate?: string; notes?: string; } export interface UpdateGradeData extends Partial<Omit<CreateGradeData, 'studentId' | 'courseId'>> { } export interface GradeFilters extends PaginationParams { studentId?: string; courseId?: string; category?: 'homework' | 'quiz' | 'exam' | 'project' | 'participation'; gradedDateFrom?: string; gradedDateTo?: string; minScore?: number; maxScore?: number; } export declare class GradesResource extends BaseResource { /** * List all grades with optional filtering and pagination */ list(filters?: GradeFilters): Promise<ListResponse<Grade>>; /** * Get a specific grade by ID */ get(gradeId: string): Promise<Grade>; /** * Create a new grade */ create(data: CreateGradeData): Promise<Grade>; /** * Update an existing grade */ update(gradeId: string, data: UpdateGradeData): Promise<Grade>; /** * Delete a grade */ delete(gradeId: string): Promise<{ success: boolean; message: string; }>; /** * Bulk create grades for multiple students */ bulkCreate(grades: CreateGradeData[]): Promise<{ created: Grade[]; errors: any[]; }>; /** * Get grade statistics for a course */ getCourseStats(courseId: string, filters?: { category?: string; }): Promise<{ average: number; median: number; highest: number; lowest: number; distribution: Record<string, number>; }>; /** * Get grade statistics for a student */ getStudentStats(studentId: string, filters?: { courseId?: string; semester?: string; }): Promise<{ gpa: number; totalCredits: number; courseGrades: Array<{ courseId: string; courseName: string; grade: string; credits: number; }>; }>; } //# sourceMappingURL=grades.d.ts.map