FAQ | This is a LIVE service | Changelog

Skip to content
Snippets Groups Projects
Commit e7011385 authored by Monty Dawson's avatar Monty Dawson :coffee:
Browse files

Use frozendict to store identifier aliases for hashability

parent b346c792
No related branches found
No related tags found
1 merge request!5Add identifiers for groups and apps
......@@ -2,6 +2,7 @@ from typing import Optional, List, Callable, Dict
from collections import namedtuple
from dataclasses import dataclass
from functools import lru_cache
from frozendict import frozendict
@dataclass(frozen=True, eq=True)
......@@ -40,44 +41,44 @@ class IdentifierSchemes:
CRSID = IdentifierScheme(
'v1.person.identifiers.cam.ac.uk',
'CRSid',
{
frozendict({
'deprecated': 'person.crs.identifiers.uis.cam.ac.uk',
'deprecated-versioned': 'person.v1.crs.identifiers.cam.ac.uk',
}
})
)
USN = IdentifierScheme(
'person.v1.student-records.university.identifiers.cam.ac.uk',
'USN',
{
frozendict({
'deprecated': 'person.camsis.identifiers.admin.cam.ac.uk',
'deprecated-versioned': 'person.v1.ust.identifiers.cam.ac.uk',
}
})
)
STAFF_NUMBER = IdentifierScheme(
'person.v1.human-resources.university.identifiers.cam.ac.uk',
'Staff Number',
{
frozendict({
'deprecated': 'person.chris.identifiers.admin.cam.ac.uk',
'deprecated-versioned': 'person.v1.uhr.identifiers.cam.ac.uk',
}
})
)
BOARD_OF_GRADUATE_STUDIES = IdentifierScheme(
'person.v1.board-of-graduate-studies.university.identifiers.cam.ac.uk',
'Board of Graduate Studies Identifier',
{
frozendict({
'deprecated': 'person.bgs.identifiers.admin.cam.ac.uk',
}
})
)
LEGACY_CARDHOLDER = IdentifierScheme(
'person.v1.legacy-card.university.identifiers.cam.ac.uk',
'Legacy cardholder Identifier',
{
frozendict({
'deprecated': 'person.legacy_card.identifiers.admin.cam.ac.uk',
}
})
)
"""
......@@ -88,25 +89,25 @@ class IdentifierSchemes:
STUDENT_INSTITUTION = IdentifierScheme(
'institution.v1.student-records.university.identifiers.cam.ac.uk',
'Student Institution',
{
frozendict({
'deprecated': 'institution.v1.ust.identifiers.cam.ac.uk',
}
})
)
HR_INSTITUTION = IdentifierScheme(
'institution.v1.human-resources.university.identifiers.cam.ac.uk',
'Human Resources Institution',
{
frozendict({
'deprecated': 'institution.v1.uhr.identifiers.cam.ac.uk',
}
})
)
LEGACY_CARD_INSTITUTION = IdentifierScheme(
'institution.v1.legacy-card.university.identifiers.cam.ac.uk',
'Legacy Card Institution',
{
frozendict({
'deprecated': 'inst.legacy_card.identifiers.admin.cam.ac.uk',
}
})
)
"""
......@@ -117,33 +118,33 @@ class IdentifierSchemes:
STUDENT_ACADEMIC_PLAN = IdentifierScheme(
'academic-plan.v1.student-records.university.identifiers.cam.ac.uk',
'Student Academic Plan',
{
frozendict({
'deprecated': 'academicPlan.v1.ust.identifiers.cam.ac.uk',
}
})
)
CARD = IdentifierScheme(
'card.v1.card.university.identifiers.cam.ac.uk',
'Card Identifier',
{
frozendict({
'deprecated': 'card.card.identifiers.uis.cam.ac.uk',
}
})
)
LEGACY_TEMP_CARD = IdentifierScheme(
'temporary-card.v1.card.university.identifiers.cam.ac.uk',
'Temporary Card Identifier',
{
'deprecated': 'temp_id.card.identifiers.uis.cam.ac.uk'
}
frozendict({
'deprecated': 'temp_id.card.identifiers.uis.cam.ac.uk',
})
)
MIFARE_ID = IdentifierScheme(
'mifare-identifier.v1.card.university.identifiers.cam.ac.uk',
'Mifare Identifier',
{
frozendict({
'deprecated': 'mifare_id.card.identifiers.uis.cam.ac.uk',
},
}),
value_parser=(
lambda v: v.lstrip('0') or '0' # fallback to '0' to avoid stripping '000' to ''
)
......@@ -152,61 +153,61 @@ class IdentifierSchemes:
MIFARE_NUMBER = IdentifierScheme(
'mifare-number.v1.card.university.identifiers.cam.ac.uk',
'Mifare Number',
{
frozendict({
'deprecated': 'mifare_number.card.identifiers.uis.cam.ac.uk',
}
})
)
BARCODE = IdentifierScheme(
'barcode.v1.card.university.identifiers.cam.ac.uk',
'Card Barcode',
{
frozendict({
'deprecated': 'barcode.identifiers.lib.cam.ac.uk',
}
})
)
CARD_LOGO = IdentifierScheme(
'card-logo.v1.card.university.identifiers.cam.ac.uk',
'Card Logo Identifier',
{
frozendict({
'deprecated': 'card_logo.card.identifiers.uis.cam.ac.uk',
}
})
)
PHOTO = IdentifierScheme(
'photo.v1.photo.university.identifiers.cam.ac.uk',
'Photo Identifier',
{
frozendict({
'deprecated': 'photo_id.photo.identifiers.uis.cam.ac.uk',
}
})
)
LEGACY_PHOTO = IdentifierScheme(
'photo.v1.legacy-card.university.identifiers.cam.ac.uk',
'Legacy Photo Identifier',
{
frozendict({
'deprecated': 'photo.legacy_card.identifiers.admin.cam.ac.uk',
}
})
)
LEGACY_CARD = IdentifierScheme(
'card.v1.legacy-card.university.identifiers.cam.ac.uk',
'Legacy Card Identifier',
{
frozendict({
'deprecated': 'card.legacy_card.identifiers.admin.cam.ac.uk',
}
})
)
LOOKUP_GROUP = IdentifierScheme(
'group.lookup.cam.ac.uk',
'Lookup Group Identifier',
{}
frozendict({})
)
API_GATEWAY_APPLICATION = IdentifierScheme(
'application.api.apps.cam.ac.uk',
'Application Gateway Application',
{}
frozendict({})
)
@staticmethod
......
dataclasses
frozendict
# for the API clients
requests
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment