UNPKG

@simpleapps-com/augur-api

Version:

TypeScript client library for Augur microservices API endpoints

213 lines 9.88 kB
import { RubricsListParamsSchema, RubricsListResponseSchema, RubricResponseSchema, RubricCreateParamsSchema, RubricUpdateParamsSchema, } from '../schemas'; /** * Creates the rubrics resource methods * OpenAPI Path: /rubrics → rubrics.* * @description Rubrics management endpoints */ export function createRubricsResource(executeRequest) { return { /** * List available rubrics for evaluation and scoring * * @fullPath api.agrInfo.rubrics.list * @service agr-info * @domain evaluation-management * @dataMethod rubricsData.list * @discoverable true * @searchTerms ["rubrics", "evaluation", "scoring", "assessment", "criteria"] * @relatedEndpoints ["api.agrInfo.rubrics.get", "api.agrInfo.rubrics.create"] * @commonPatterns ["List evaluation rubrics", "Get assessment criteria", "Scoring frameworks"] * @workflow ["evaluation-setup", "assessment-preparation", "scoring-criteria"] * @prerequisites ["Valid authentication", "Evaluation system access"] * @nextSteps ["Select rubric for evaluation", "Create new assessment"] * @businessRules ["Returns available evaluation frameworks", "Includes rubric metadata"] * @functionalArea "evaluation-management" * @caching "Cache for 10 minutes, stable evaluation criteria" * @performance "Fast retrieval of evaluation frameworks" * * @param params Optional filtering parameters * @returns Promise<RubricsListResponse> List of available rubrics */ list: async (params) => { return executeRequest({ method: 'GET', path: '/rubrics', paramsSchema: RubricsListParamsSchema, responseSchema: RubricsListResponseSchema, }, params); }, /** * Get specific rubric details and criteria * * @fullPath api.agrInfo.rubrics.get * @service agr-info * @domain evaluation-management * @dataMethod rubricsData.get * @discoverable true * @searchTerms ["rubric", "details", "criteria", "evaluation", "scoring"] * @relatedEndpoints ["api.agrInfo.rubrics.list", "api.agrInfo.rubrics.update", "api.agrInfo.rubrics.delete"] * @commonPatterns ["Get rubric details", "View evaluation criteria", "Rubric information"] * @workflow ["evaluation-review", "assessment-setup", "scoring-preparation"] * @prerequisites ["Valid authentication", "Valid rubric UID"] * @nextSteps ["Use rubric for evaluation", "Modify rubric criteria"] * @businessRules ["Returns complete rubric structure", "Includes all evaluation criteria"] * @functionalArea "evaluation-management" * @caching "Cache for 15 minutes, evaluation criteria are stable" * @performance "Fast lookup by rubric UID" * * @param rubricsUid Unique identifier for the rubric * @returns Promise<RubricResponse> Rubric details and criteria */ get: async (rubricsUid) => { return executeRequest({ method: 'GET', path: '/rubrics/{rubricsUid}', responseSchema: RubricResponseSchema, }, undefined, { rubricsUid: String(rubricsUid) }); }, /** * Create a new evaluation rubric * * @fullPath api.agrInfo.rubrics.create * @service agr-info * @domain evaluation-management * @dataMethod rubricsData.create * @discoverable true * @searchTerms ["rubric", "create", "new", "evaluation", "assessment", "criteria"] * @relatedEndpoints ["api.agrInfo.rubrics.list", "api.agrInfo.rubrics.get", "api.agrInfo.rubrics.update"] * @commonPatterns ["Create evaluation rubric", "New assessment framework", "Define scoring criteria"] * @workflow ["rubric-development", "evaluation-setup", "assessment-creation"] * @prerequisites ["Valid authentication", "Evaluation design requirements"] * @nextSteps ["Define detailed criteria", "Test rubric with evaluations"] * @businessRules ["Validates rubric structure", "Assigns unique UID", "Sets creation metadata"] * @functionalArea "evaluation-management" * @caching "No caching - immediate creation" * @performance "Fast creation with validation" * * @param data Rubric creation data * @returns Promise<RubricResponse> Created rubric details */ create: async (data) => { return executeRequest({ method: 'POST', path: '/rubrics', paramsSchema: RubricCreateParamsSchema, responseSchema: RubricResponseSchema, }, data); }, /** * Update existing rubric criteria and configuration * * @fullPath api.agrInfo.rubrics.update * @service agr-info * @domain evaluation-management * @dataMethod rubricsData.update * @discoverable true * @searchTerms ["rubric", "update", "modify", "edit", "criteria", "evaluation"] * @relatedEndpoints ["api.agrInfo.rubrics.get", "api.agrInfo.rubrics.list", "api.agrInfo.rubrics.delete"] * @commonPatterns ["Update rubric criteria", "Modify evaluation framework", "Edit scoring system"] * @workflow ["rubric-maintenance", "evaluation-improvement", "assessment-refinement"] * @prerequisites ["Valid authentication", "Existing rubric", "Valid rubrics_uid"] * @nextSteps ["Validate updated criteria", "Re-test evaluation accuracy"] * @businessRules ["Preserves evaluation integrity", "Updates modification timestamps", "Validates criteria"] * @functionalArea "evaluation-management" * @caching "Invalidate cache on update" * @performance "Fast updates with validation" * * @param rubricsUid Unique identifier for the rubric * @param data Updated rubric data * @returns Promise<RubricResponse> Updated rubric details */ update: async (rubricsUid, data) => { return executeRequest({ method: 'PUT', path: '/rubrics/{rubricsUid}', paramsSchema: RubricUpdateParamsSchema, responseSchema: RubricResponseSchema, }, data, { rubricsUid: String(rubricsUid) }); }, /** * Delete an evaluation rubric * * @fullPath api.agrInfo.rubrics.delete * @service agr-info * @domain evaluation-management * @dataMethod rubricsData.delete * @discoverable true * @searchTerms ["rubric", "delete", "remove", "evaluation", "cleanup"] * @relatedEndpoints ["api.agrInfo.rubrics.list", "api.agrInfo.rubrics.get"] * @commonPatterns ["Remove rubric", "Delete evaluation framework", "Cleanup assessments"] * @workflow ["rubric-cleanup", "evaluation-maintenance", "assessment-removal"] * @prerequisites ["Valid authentication", "Existing rubric", "No active evaluations using rubric"] * @nextSteps ["Verify rubric removal", "Update evaluation documentation"] * @businessRules ["Checks for active usage", "Prevents deletion of in-use rubrics", "Logs deletion"] * @functionalArea "evaluation-management" * @caching "Invalidate all related cache on delete" * @performance "Fast deletion with dependency validation" * * @param rubricsUid Unique identifier for the rubric * @returns Promise<boolean> Success indicator */ delete: async (rubricsUid) => { await executeRequest({ method: 'DELETE', path: '/rubrics/{rubricsUid}', responseSchema: RubricResponseSchema, }, undefined, { rubricsUid: String(rubricsUid) }); return true; }, }; } /** * Creates the rubricsData resource methods (data-only versions) */ export function createRubricsDataResource(rubrics) { return { /** * Get rubrics list data only * @param params Optional filtering parameters * @returns Promise<Rubric[]> Array of rubrics */ list: async (params) => { const response = await rubrics.list(params); return response.data; }, /** * Get rubric details data only * @param rubricsUid Unique identifier for the rubric * @returns Promise<Rubric> Rubric details */ get: async (rubricsUid) => { const response = await rubrics.get(rubricsUid); return response.data; }, /** * Get created rubric data only * @param data Rubric creation data * @returns Promise<Rubric> Created rubric */ create: async (data) => { const response = await rubrics.create(data); return response.data; }, /** * Get updated rubric data only * @param rubricsUid Unique identifier for the rubric * @param data Updated rubric data * @returns Promise<Rubric> Updated rubric */ update: async (rubricsUid, data) => { const response = await rubrics.update(rubricsUid, data); return response.data; }, /** * Delete rubric and return success status * @param rubricsUid Unique identifier for the rubric * @returns Promise<boolean> Success indicator */ delete: async (rubricsUid) => { return await rubrics.delete(rubricsUid); }, }; } //# sourceMappingURL=rubrics.js.map