Initial commit, working server
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "sykkelaksjon-openid",
|
||||
"title": "Sykkelaksjon openid",
|
||||
"description": "Server message telling where the openId server is",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"openid_discovery_uri": {
|
||||
"type": "string",
|
||||
"description": "The discovery URI of the OpenID provider"
|
||||
},
|
||||
"client_id": {
|
||||
"type": "string",
|
||||
"description": "The client ID of the sykkelaksjon client"
|
||||
}
|
||||
},
|
||||
"required": ["openid_discovery_uri", "client_id"]
|
||||
}
|
||||
@@ -0,0 +1,180 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "sykkelaksjon-api",
|
||||
"title": "Sykkelaksjon",
|
||||
"description": "Server message for users of the Sykkelaksjon web site",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "The full name of the connected user"
|
||||
},
|
||||
"isAdmin": {
|
||||
"type": "boolean",
|
||||
"description": "Whether the connected user is an administrator"
|
||||
},
|
||||
"activityTypes": {
|
||||
"type": "array",
|
||||
"description": "Available types of activities",
|
||||
"items": {
|
||||
"$ref": "#/$defs/activityType"
|
||||
}
|
||||
},
|
||||
"unitConversionNecessary" : {
|
||||
"type": "boolean",
|
||||
"description": "Whether there exists activity types that don't have a conversion factor of 1"
|
||||
},
|
||||
"activityTemplates": {
|
||||
"type": "array",
|
||||
"description": "Templates that the user might apply to quickly add a new activity",
|
||||
"items": {
|
||||
"$ref": "#/$defs/activityTemplate"
|
||||
}
|
||||
},
|
||||
"activities": {
|
||||
"type": "array",
|
||||
"description": "The activities the user has performed",
|
||||
"items": {
|
||||
"$ref": "#/$defs/activity"
|
||||
}
|
||||
},
|
||||
"otherUsers": {
|
||||
"type": "array",
|
||||
"description": "Other users of the web site to create a leaderboard, and more detailed information for administrators",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"description": "Information about other users in the system",
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "The display name of the user"
|
||||
},
|
||||
"earliestActivity": {
|
||||
"$ref": "#/$defs/date",
|
||||
"description": "The earliest date the user has performed an activity on"
|
||||
},
|
||||
"latestActivity": {
|
||||
"$ref": "#/$defs/date",
|
||||
"description": "The latest date the user has performed an activity on"
|
||||
},
|
||||
"totalKilometers": {
|
||||
"type": "number",
|
||||
"description": "The total amount of kilometers (including converted activities) the user has covered"
|
||||
},
|
||||
"userId": {
|
||||
"type": "integer",
|
||||
"description": "Administrator info: ther user id of the user"
|
||||
},
|
||||
"userName": {
|
||||
"type": "string",
|
||||
"description": "Administrator info: the username of the user"
|
||||
},
|
||||
"isActive": {
|
||||
"type": "boolean",
|
||||
"description": "Administrator info: whether the user listed is still active"
|
||||
},
|
||||
"isAdmin": {
|
||||
"type": "boolean",
|
||||
"description": "Administrator info: whether the user listed is an administrator"
|
||||
},
|
||||
"activityTemplates": {
|
||||
"type": "array",
|
||||
"description": "Administrator info: the activity templates this user has defined",
|
||||
"items": {
|
||||
"$ref": "#/$defs/activityTemplate"
|
||||
}
|
||||
},
|
||||
"activities": {
|
||||
"type": "array",
|
||||
"description": "Administrator info: a detailed list of activities the user has performed",
|
||||
"items": {
|
||||
"$ref": "#/$defs/activity"
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
"required": ["name"]
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": ["name", "isAdmin", "activityTypes", "unitConversionNecessary", "activityTemplates", "activities", "otherUsers"],
|
||||
|
||||
"$defs": {
|
||||
"date": {
|
||||
"type": "string",
|
||||
"description": "A date in local time",
|
||||
"pattern": "[0-9]{4}-[0-9]{2}-[0-9]{4}"
|
||||
},
|
||||
"activityType": {
|
||||
"type": "object",
|
||||
"description": "An available activity the user may log",
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "integer",
|
||||
"description": "The database ID of the activity type"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "The name of the activity type"
|
||||
},
|
||||
"unit": {
|
||||
"type": "string",
|
||||
"description": "The unit this activity type is measured in"
|
||||
},
|
||||
"conversionFactor": {
|
||||
"type": "number",
|
||||
"description": "The conversion factor from the unit the activity is measured in into kilometers"
|
||||
}
|
||||
},
|
||||
"required": ["name", "unit", "conversionFactor"]
|
||||
},
|
||||
"activityTemplate": {
|
||||
"type": "object",
|
||||
"description": "Templates that the user has stored in order to quickly add common activities",
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "integer",
|
||||
"description": "The database ID of the activity template"
|
||||
},
|
||||
"activityType": {
|
||||
"$ref": "#/$defs/activityType"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "The name the user has given to this activity"
|
||||
},
|
||||
"numberOfUnits": {
|
||||
"type": "number",
|
||||
"description": "The length of the activity (in units defined in the activity type)"
|
||||
}
|
||||
},
|
||||
"required": ["activityType", "name", "numberOfUnits"]
|
||||
},
|
||||
"activity": {
|
||||
"type": "object",
|
||||
"description": "An activity a user has performed at some date",
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "integer",
|
||||
"description": "The database ID of the activity"
|
||||
},
|
||||
"activityType": {
|
||||
"$ref": "#/$defs/activityType"
|
||||
},
|
||||
"numberOfUnits": {
|
||||
"type": "number",
|
||||
"description": "The length of the activity (in units defined in the activity type)"
|
||||
},
|
||||
"description": {
|
||||
"type": "string",
|
||||
"description": "The user's description of the activity"
|
||||
},
|
||||
"date": {
|
||||
"$ref": "#/$defs/date",
|
||||
"description": "The date the user performed the activity"
|
||||
}
|
||||
},
|
||||
"required": ["activityType", "numberOfUnits", "description", "date"]
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user