mirror of
https://gitlab.com/openstapps/openstapps.git
synced 2026-01-19 16:13:06 +00:00
258 lines
6.2 KiB
TypeScript
258 lines
6.2 KiB
TypeScript
/*
|
|
* Copyright (C) 2023 StApps
|
|
* This program is free software: you can redistribute it and/or modify it
|
|
* under the terms of the GNU General Public License as published by the Free
|
|
* Software Foundation, version 3.
|
|
*
|
|
* This program is distributed in the hope that it will be useful, but WITHOUT
|
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
* more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License along with
|
|
* this program. If not, see <https://www.gnu.org/licenses/>.
|
|
*/
|
|
import {
|
|
SCAboutPageContentType,
|
|
SCAuthorizationProvider,
|
|
SCBackendAggregationConfiguration,
|
|
SCIndexResponse,
|
|
SCSettingInputType,
|
|
SCThingOriginType,
|
|
SCThingType,
|
|
} from '@openstapps/core';
|
|
import {CORE_VERSION} from '@openstapps/core';
|
|
import {Polygon} from 'geojson';
|
|
|
|
// provides sample aggregations to be used in tests or backendless development
|
|
export const sampleAggregations: SCBackendAggregationConfiguration[] = [
|
|
{
|
|
fieldName: 'categories',
|
|
onlyOnTypes: [
|
|
SCThingType.AcademicEvent,
|
|
SCThingType.Article,
|
|
SCThingType.Building,
|
|
SCThingType.Catalog,
|
|
SCThingType.Dish,
|
|
SCThingType.PointOfInterest,
|
|
SCThingType.Room,
|
|
],
|
|
},
|
|
{
|
|
fieldName: 'inPlace.name',
|
|
onlyOnTypes: [
|
|
SCThingType.DateSeries,
|
|
SCThingType.Dish,
|
|
SCThingType.Floor,
|
|
SCThingType.Organization,
|
|
SCThingType.PointOfInterest,
|
|
SCThingType.Room,
|
|
SCThingType.Ticket,
|
|
],
|
|
},
|
|
{
|
|
fieldName: 'academicTerms.acronym',
|
|
onlyOnTypes: [SCThingType.AcademicEvent, SCThingType.SportCourse],
|
|
},
|
|
{
|
|
fieldName: 'academicTerm.acronym',
|
|
onlyOnTypes: [SCThingType.Catalog],
|
|
},
|
|
{
|
|
fieldName: 'majors',
|
|
onlyOnTypes: [SCThingType.AcademicEvent],
|
|
},
|
|
{
|
|
fieldName: 'keywords',
|
|
onlyOnTypes: [SCThingType.Article, SCThingType.Book, SCThingType.Message, SCThingType.Video],
|
|
},
|
|
{
|
|
fieldName: 'type',
|
|
},
|
|
];
|
|
|
|
export const sampleAuthConfiguration: {
|
|
default: SCAuthorizationProvider;
|
|
paia: SCAuthorizationProvider;
|
|
} = {
|
|
default: {
|
|
client: {clientId: '', scopes: '', url: ''},
|
|
endpoints: {
|
|
authorization: '',
|
|
mapping: {id: '', name: ''},
|
|
token: '',
|
|
userinfo: '',
|
|
},
|
|
},
|
|
paia: {
|
|
client: {clientId: '', scopes: '', url: ''},
|
|
endpoints: {
|
|
authorization: '',
|
|
mapping: {id: '', name: ''},
|
|
token: '',
|
|
userinfo: '',
|
|
},
|
|
},
|
|
};
|
|
|
|
export const sampleDefaultPolygon: Polygon = {
|
|
coordinates: [
|
|
[
|
|
[8.660432999690723, 50.123027017044436],
|
|
[8.675496285518358, 50.123027017044436],
|
|
[8.675496285518358, 50.13066176448642],
|
|
[8.660432999690723, 50.13066176448642],
|
|
[8.660432999690723, 50.123027017044436],
|
|
],
|
|
],
|
|
type: 'Polygon',
|
|
};
|
|
|
|
export const sampleIndexResponse: SCIndexResponse = {
|
|
app: {
|
|
aboutPages: {
|
|
about: {
|
|
title: 'About',
|
|
content: [
|
|
{
|
|
value: 'This is the about page',
|
|
type: SCAboutPageContentType.MARKDOWN,
|
|
translations: {
|
|
en: {
|
|
value: 'This is the about page',
|
|
},
|
|
},
|
|
},
|
|
],
|
|
translations: {
|
|
en: {
|
|
title: 'About',
|
|
},
|
|
},
|
|
},
|
|
},
|
|
campusPolygon: {
|
|
coordinates: [[[1, 2]], [[1, 2]]],
|
|
type: 'Polygon',
|
|
},
|
|
features: {},
|
|
menus: [
|
|
{
|
|
icon: 'icon',
|
|
items: [
|
|
{
|
|
icon: 'icon',
|
|
route: '/index',
|
|
title: 'start',
|
|
translations: {
|
|
de: {
|
|
title: 'Start',
|
|
},
|
|
en: {
|
|
title: 'start',
|
|
},
|
|
},
|
|
},
|
|
],
|
|
title: 'main',
|
|
route: '/main',
|
|
translations: {
|
|
de: {
|
|
title: 'Haupt',
|
|
},
|
|
en: {
|
|
title: 'main',
|
|
},
|
|
},
|
|
},
|
|
],
|
|
name: 'StApps',
|
|
privacyPolicyUrl: 'foo.bar',
|
|
settings: [
|
|
{
|
|
categories: ['credentials'],
|
|
defaultValue: '',
|
|
inputType: SCSettingInputType.Text,
|
|
name: 'username',
|
|
order: 0,
|
|
origin: {
|
|
indexed: '2018-09-11T12:30:00Z',
|
|
name: 'Dummy',
|
|
type: SCThingOriginType.Remote,
|
|
},
|
|
translations: {
|
|
de: {
|
|
name: 'Benutzername',
|
|
},
|
|
en: {
|
|
name: 'Username',
|
|
},
|
|
},
|
|
type: SCThingType.Setting,
|
|
uid: '',
|
|
},
|
|
],
|
|
},
|
|
auth: {},
|
|
backend: {
|
|
SCVersion: CORE_VERSION,
|
|
externalRequestTimeout: 5000,
|
|
hiddenTypes: [SCThingType.DateSeries, SCThingType.Diff, SCThingType.Floor],
|
|
mappingIgnoredTags: [],
|
|
maxMultiSearchRouteQueries: 5,
|
|
maxRequestBodySize: 512 * 1024,
|
|
name: 'Technische Universität Berlin',
|
|
namespace: '909a8cbc-8520-456c-b474-ef1525f14209',
|
|
sortableFields: [
|
|
{
|
|
fieldName: 'name',
|
|
sortTypes: ['ducet'],
|
|
},
|
|
{
|
|
fieldName: 'type',
|
|
sortTypes: ['ducet'],
|
|
},
|
|
{
|
|
fieldName: 'categories',
|
|
onlyOnTypes: [
|
|
SCThingType.AcademicEvent,
|
|
SCThingType.Building,
|
|
SCThingType.Catalog,
|
|
SCThingType.Dish,
|
|
SCThingType.PointOfInterest,
|
|
SCThingType.Room,
|
|
],
|
|
sortTypes: ['ducet'],
|
|
},
|
|
{
|
|
fieldName: 'geo',
|
|
onlyOnTypes: [SCThingType.Building, SCThingType.PointOfInterest, SCThingType.Room],
|
|
sortTypes: ['distance'],
|
|
},
|
|
{
|
|
fieldName: 'geo',
|
|
onlyOnTypes: [SCThingType.Building, SCThingType.PointOfInterest, SCThingType.Room],
|
|
sortTypes: ['distance'],
|
|
},
|
|
{
|
|
fieldName: 'inPlace.geo',
|
|
onlyOnTypes: [
|
|
SCThingType.DateSeries,
|
|
SCThingType.Dish,
|
|
SCThingType.Floor,
|
|
SCThingType.Organization,
|
|
SCThingType.PointOfInterest,
|
|
SCThingType.Room,
|
|
SCThingType.Ticket,
|
|
],
|
|
sortTypes: ['distance'],
|
|
},
|
|
{
|
|
fieldName: 'offers',
|
|
onlyOnTypes: [SCThingType.Dish],
|
|
sortTypes: ['price'],
|
|
},
|
|
],
|
|
},
|
|
};
|