Skip to main content
Glama
v4-education-events.ts7.62 kB
/** * V4 Verktyg för utbildningstillfällen (education events) */ import { z } from 'zod'; import { plannedEducationApi } from '../../api/planned-education-client.js'; // ===== SEARCH EDUCATION EVENTS V4 ===== export const searchEducationEventsV4Schema = { schoolUnitCode: z.string().optional().describe('Filtrera på skolenhetskod'), typeOfSchool: z.string().optional().describe('Typ av skola'), municipality: z.string().optional().describe('Kommun'), county: z.string().optional().describe('Län'), geographicalAreaCode: z.string().optional().describe('Geografisk områdeskod'), distance: z.boolean().optional().describe('Distansutbildning (true/false)'), paceOfStudy: z.string().optional().describe('Studietakt'), semesterStartFrom: z.string().optional().describe('Terminsstart från datum (YYYY-MM-DD)'), programCode: z.string().optional().describe('Programkod'), orientationCode: z.string().optional().describe('Inriktningskod'), educationAreaCode: z.string().optional().describe('Utbildningsområdeskod'), directionIds: z.string().optional().describe('Inriktnings-ID (kommaseparerad lista)'), instructionLanguages: z.string().optional().describe('Undervisningsspråk (kommaseparerad lista)'), searchTerm: z.string().optional().describe('Fritextsökning'), page: z.number().optional().default(0).describe('Sidnummer (0-indexerat)'), size: z.number().optional().default(20).describe('Antal resultat per sida'), sort: z.string().optional().describe('Sortering (t.ex. "titleSv,asc")') }; export async function searchEducationEventsV4(params: { schoolUnitCode?: string; typeOfSchool?: string; municipality?: string; county?: string; geographicalAreaCode?: string; distance?: boolean; paceOfStudy?: string; semesterStartFrom?: string; programCode?: string; orientationCode?: string; educationAreaCode?: string; directionIds?: string; instructionLanguages?: string; searchTerm?: string; page?: number; size?: number; sort?: string; }) { try { const result = await plannedEducationApi.searchEducationEventsV4(params); return { content: [ { type: 'text' as const, text: JSON.stringify({ page: result.page, educationEvents: result._embedded.educationEvents, _links: result._links }, null, 2) } ] }; } catch (error) { return { content: [ { type: 'text' as const, text: `Fel vid sökning av utbildningstillfällen (v4): ${error instanceof Error ? error.message : String(error)}` } ], isError: true }; } } // ===== SEARCH COMPACT EDUCATION EVENTS V4 ===== export const searchCompactEducationEventsV4Schema = { schoolUnitCode: z.string().optional().describe('Filtrera på skolenhetskod'), typeOfSchool: z.string().optional().describe('Typ av skola'), municipality: z.string().optional().describe('Kommun'), county: z.string().optional().describe('Län'), geographicalAreaCode: z.string().optional().describe('Geografisk områdeskod'), distance: z.boolean().optional().describe('Distansutbildning (true/false)'), paceOfStudy: z.string().optional().describe('Studietakt'), semesterStartFrom: z.string().optional().describe('Terminsstart från datum (YYYY-MM-DD)'), searchTerm: z.string().optional().describe('Fritextsökning'), page: z.number().optional().default(0).describe('Sidnummer'), size: z.number().optional().default(20).describe('Antal per sida') }; export async function searchCompactEducationEventsV4(params: { schoolUnitCode?: string; typeOfSchool?: string; municipality?: string; county?: string; geographicalAreaCode?: string; distance?: boolean; paceOfStudy?: string; semesterStartFrom?: string; searchTerm?: string; page?: number; size?: number; }) { try { const result = await plannedEducationApi.searchCompactEducationEventsV4(params); return { content: [ { type: 'text' as const, text: JSON.stringify({ page: result.page, compactEducationEvents: result._embedded.compactEducationEvents, _links: result._links }, null, 2) } ] }; } catch (error) { return { content: [ { type: 'text' as const, text: `Fel vid sökning av kompakta utbildningstillfällen (v4): ${error instanceof Error ? error.message : String(error)}` } ], isError: true }; } } // ===== COUNT EDUCATION EVENTS V4 ===== export const countEducationEventsV4Schema = { schoolUnitCode: z.string().optional().describe('Filtrera på skolenhetskod'), typeOfSchool: z.string().optional().describe('Typ av skola'), municipality: z.string().optional().describe('Kommun'), county: z.string().optional().describe('Län'), geographicalAreaCode: z.string().optional().describe('Geografisk områdeskod'), distance: z.boolean().optional().describe('Distansutbildning'), paceOfStudy: z.string().optional().describe('Studietakt'), programCode: z.string().optional().describe('Programkod'), searchTerm: z.string().optional().describe('Fritextsökning') }; export async function countEducationEventsV4(params: { schoolUnitCode?: string; typeOfSchool?: string; municipality?: string; county?: string; geographicalAreaCode?: string; distance?: boolean; paceOfStudy?: string; programCode?: string; searchTerm?: string; }) { try { const result = await plannedEducationApi.countEducationEventsV4(params); return { content: [ { type: 'text' as const, text: JSON.stringify({ count: result.count, filters: result.filters }, null, 2) } ] }; } catch (error) { return { content: [ { type: 'text' as const, text: `Fel vid räkning av utbildningstillfällen (v4): ${error instanceof Error ? error.message : String(error)}` } ], isError: true }; } } // ===== COUNT ADULT EDUCATION EVENTS V4 ===== export const countAdultEducationEventsV4Schema = { town: z.string().optional().describe('Ort'), executionCondition: z.string().optional().describe('Genomförandevillkor'), geographicalAreaCode: z.string().optional().describe('Geografisk områdeskod'), searchTerm: z.string().optional().describe('Fritextsökning'), typeOfSchool: z.string().optional().describe('Typ av skola'), paceOfStudy: z.string().optional().describe('Studietakt'), county: z.string().optional().describe('Län'), municipality: z.string().optional().describe('Kommun'), distance: z.string().optional().describe('Distansutbildning (true/false)') }; export async function countAdultEducationEventsV4(params: { town?: string; executionCondition?: string; geographicalAreaCode?: string; searchTerm?: string; typeOfSchool?: string; paceOfStudy?: string; county?: string; municipality?: string; distance?: string; }) { try { const result = await plannedEducationApi.countAdultEducationEventsV4(params); return { content: [ { type: 'text' as const, text: JSON.stringify({ count: result.count, filters: result.filters }, null, 2) } ] }; } catch (error) { return { content: [ { type: 'text' as const, text: `Fel vid räkning av vuxenutbildningstillfällen (v4): ${error instanceof Error ? error.message : String(error)}` } ], isError: true }; } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/isakskogstad/skolverket-syllabus-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server