WIP version 3.0.0

This commit is contained in:
Thomas Fransolet 2025-05-28 14:08:32 +02:00
parent 42d3e257b2
commit 53dff98388
311 changed files with 15817 additions and 4133 deletions

View File

@ -57,7 +57,7 @@ android {
defaultConfig { defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "be.unov.mymuseum.fortsaintheribert" // Update for mdlf and other clients -- "be.unov.mymuseum.fortsaintheribert" // be.unov.myinfomate.mdlf applicationId "be.unov.mymuseum.fortsaintheribert" // Update for mdlf and other clients -- "be.unov.mymuseum.fortsaintheribert" // be.unov.myinfomate.mdlf
minSdkVersion flutter.minSdkVersion minSdkVersion 24// flutter.minSdkVersion
targetSdkVersion flutter.targetSdkVersion targetSdkVersion flutter.targetSdkVersion
versionCode flutterVersionCode.toInteger() versionCode flutterVersionCode.toInteger()
versionName flutterVersionName versionName flutterVersionName

BIN
assets/files/Duck.glb Normal file

Binary file not shown.

View File

@ -0,0 +1,202 @@
<!doctype html>
<!--
Copyright 2018 The Immersive Web Community Group
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-->
<html>
<head>
<meta charset='utf-8'>
<meta name='viewport' content='width=device-width, initial-scale=1, user-scalable=no'>
<meta name='mobile-web-app-capable' content='yes'>
<meta name='apple-mobile-web-app-capable' content='yes'>
<link rel='icon' type='image/png' sizes='32x32' href='favicon-32x32.png'>
<link rel='icon' type='image/png' sizes='96x96' href='favicon-96x96.png'>
<link rel='stylesheet' href='css/common.css'>
<title>Immersive AR Session</title>
</head>
<body>
<header>
<details open>
<summary>Immersive AR Session</summary>
<p>
This sample demonstrates how to use an 'immersive-ar' XRSession to
present a simple WebGL scene to a transparent or passthrough XR
device. The logic is largely the same as the corresponding VR sample,
with the primary difference being that no background is rendered and
the model is scaled down for easier viewing in a real-world space.
<a class="back" href="./">Back</a>
</p>
</details>
</header>
<script type="module">
import {WebXRButton} from './js/util/webxr-button.js';
import {Scene} from './js/render/scenes/scene.js';
import {Renderer, createWebGLContext} from './js/render/core/renderer.js';
import {SkyboxNode} from './js/render/nodes/skybox.js';
import {InlineViewerHelper} from './js/util/inline-viewer-helper.js';
import {Gltf2Node} from './js/render/nodes/gltf2.js';
import {QueryArgs} from './js/util/query-args.js';
// If requested, use the polyfill to provide support for mobile devices
// and devices which only support WebVR.
import WebXRPolyfill from './js/third-party/webxr-polyfill/build/webxr-polyfill.module.js';
if (QueryArgs.getBool('usePolyfill', true)) {
let polyfill = new WebXRPolyfill();
}
// XR globals.
let xrButton = null;
let xrImmersiveRefSpace = null;
let inlineViewerHelper = null;
// WebGL scene globals.
let gl = null;
let renderer = null;
let scene = new Scene();
let solarSystem = new Gltf2Node({url: 'media/gltf/space/space.gltf'});
// The solar system is big (citation needed). Scale it down so that users
// can move around the planets more easily.
solarSystem.scale = [0.01, 0.01, 0.1];
scene.addNode(solarSystem);
// Still adding a skybox, but only for the benefit of the inline view.
let skybox = new SkyboxNode({url: 'media/textures/milky-way-4k.png'});
scene.addNode(skybox);
function initXR() {
xrButton = new WebXRButton({
onRequestSession: onRequestSession,
onEndSession: onEndSession,
textEnterXRTitle: "START AR Youhou",
textXRNotFoundTitle: "AR NOT FOUND",
textExitXRTitle: "EXIT AR",
});
document.querySelector('header').appendChild(xrButton.domElement);
if (navigator.xr) {
// Checks to ensure that 'immersive-ar' mode is available, and only
// enables the button if so.
navigator.xr.isSessionSupported('immersive-ar').then((supported) => {
xrButton.enabled = supported;
});
navigator.xr.requestSession('inline').then(onSessionStarted);
}
}
function onRequestSession() {
// Requests an 'immersive-ar' session, which ensures that the users
// environment will be visible either via video passthrough or a
// transparent display. This may be presented either in a headset or
// fullscreen on a mobile device.
return navigator.xr.requestSession('immersive-ar')
.then((session) => {
xrButton.setSession(session);
session.isImmersive = true;
onSessionStarted(session);
});
}
function initGL() {
if (gl)
return;
gl = createWebGLContext({
xrCompatible: true
});
document.body.appendChild(gl.canvas);
function onResize() {
gl.canvas.width = gl.canvas.clientWidth * window.devicePixelRatio;
gl.canvas.height = gl.canvas.clientHeight * window.devicePixelRatio;
}
window.addEventListener('resize', onResize);
onResize();
renderer = new Renderer(gl);
scene.setRenderer(renderer);
}
function onSessionStarted(session) {
session.addEventListener('end', onSessionEnded);
if (session.isImmersive) {
// When in 'immersive-ar' mode don't draw an opaque background because
// we want the real world to show through.
skybox.visible = false;
}
initGL();
session.updateRenderState({ baseLayer: new XRWebGLLayer(session, gl) });
let refSpaceType = session.isImmersive ? 'local' : 'viewer';
session.requestReferenceSpace(refSpaceType).then((refSpace) => {
if (session.isImmersive) {
xrImmersiveRefSpace = refSpace;
xrImmersiveRefSpace.addEventListener('reset', (evt) => {
if (evt.transform) {
// AR experiences typically should stay grounded to the real world.
// If there's a known origin shift, compensate for it here.
xrImmersiveRefSpace = xrImmersiveRefSpace.getOffsetReferenceSpace(evt.transform);
}
});
} else {
inlineViewerHelper = new InlineViewerHelper(gl.canvas, refSpace);
}
session.requestAnimationFrame(onXRFrame);
});
}
function onEndSession(session) {
session.end();
}
function onSessionEnded(event) {
if (event.session.isImmersive) {
xrButton.setSession(null);
// Turn the background back on when we go back to the inlive view.
skybox.visible = true;
}
}
// Called every time a XRSession requests that a new frame be drawn.
function onXRFrame(t, frame) {
let session = frame.session;
let refSpace = session.isImmersive ?
xrImmersiveRefSpace :
inlineViewerHelper.referenceSpace;
let pose = frame.getViewerPose(refSpace);
scene.startFrame();
session.requestAnimationFrame(onXRFrame);
scene.drawXRFrame(frame, pose);
scene.endFrame();
}
// Start the XR application.
initXR();
</script>
</body>
</html>

View File

@ -1,6 +1,6 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
//import 'package:flutter_svg_provider/flutter_svg_provider.dart'; //import 'package:flutter_svg_provider/flutter_svg_provider.dart';
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
import 'package:mymuseum_visitapp/Models/visitContext.dart'; import 'package:mymuseum_visitapp/Models/visitContext.dart';
import 'package:mymuseum_visitapp/app_context.dart'; import 'package:mymuseum_visitapp/app_context.dart';
import 'package:mymuseum_visitapp/constants.dart'; import 'package:mymuseum_visitapp/constants.dart';

View File

@ -1,7 +1,7 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'dart:io'; import 'dart:io';
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
import 'package:mymuseum_visitapp/Helpers/translationHelper.dart'; import 'package:mymuseum_visitapp/Helpers/translationHelper.dart';
import 'package:mymuseum_visitapp/Models/visitContext.dart'; import 'package:mymuseum_visitapp/Models/visitContext.dart';
import 'package:mymuseum_visitapp/Screens/Article/article_page.dart'; import 'package:mymuseum_visitapp/Screens/Article/article_page.dart';
@ -191,7 +191,7 @@ class _ScannerDialogState extends State<ScannerDialog> {
), ),
); );
break; break;
case SectionType.Quizz: case SectionType.Quiz:
Navigator.pushReplacement( Navigator.pushReplacement(
context, context,
MaterialPageRoute( MaterialPageRoute(

View File

@ -3,7 +3,7 @@ import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_widget_from_html/flutter_widget_from_html.dart'; import 'package:flutter_widget_from_html/flutter_widget_from_html.dart';
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
import 'package:mymuseum_visitapp/Helpers/translationHelper.dart'; import 'package:mymuseum_visitapp/Helpers/translationHelper.dart';
import 'package:mymuseum_visitapp/Models/resourceModel.dart'; import 'package:mymuseum_visitapp/Models/resourceModel.dart';
import 'package:mymuseum_visitapp/Models/visitContext.dart'; import 'package:mymuseum_visitapp/Models/visitContext.dart';

View File

@ -1,7 +1,7 @@
import 'dart:convert'; import 'dart:convert';
import 'package:carousel_slider/carousel_slider.dart'; import 'package:carousel_slider/carousel_slider.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
import 'package:mymuseum_visitapp/Components/ShowImagePopup.dart'; import 'package:mymuseum_visitapp/Components/ShowImagePopup.dart';
import 'package:mymuseum_visitapp/Models/resourceModel.dart'; import 'package:mymuseum_visitapp/Models/resourceModel.dart';
import 'package:mymuseum_visitapp/Models/visitContext.dart'; import 'package:mymuseum_visitapp/Models/visitContext.dart';

View File

@ -2,7 +2,7 @@ import 'dart:io';
import 'package:cached_network_image/cached_network_image.dart'; import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
import 'package:mymuseum_visitapp/Models/visitContext.dart'; import 'package:mymuseum_visitapp/Models/visitContext.dart';
import 'package:mymuseum_visitapp/app_context.dart'; import 'package:mymuseum_visitapp/app_context.dart';
import 'package:mymuseum_visitapp/constants.dart'; import 'package:mymuseum_visitapp/constants.dart';

View File

@ -1,6 +1,6 @@
import 'dart:convert'; import 'dart:convert';
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
import 'package:mymuseum_visitapp/Models/articleRead.dart'; import 'package:mymuseum_visitapp/Models/articleRead.dart';
import 'package:mymuseum_visitapp/Models/beaconSection.dart'; import 'package:mymuseum_visitapp/Models/beaconSection.dart';
import 'package:mymuseum_visitapp/Models/resourceModel.dart'; import 'package:mymuseum_visitapp/Models/resourceModel.dart';

View File

@ -1,6 +1,6 @@
import 'dart:convert'; import 'dart:convert';
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
import 'package:mymuseum_visitapp/Models/beaconSection.dart'; import 'package:mymuseum_visitapp/Models/beaconSection.dart';
class ModelsHelper { class ModelsHelper {

View File

@ -1,4 +1,4 @@
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
import 'package:mymuseum_visitapp/Models/visitContext.dart'; import 'package:mymuseum_visitapp/Models/visitContext.dart';
import 'package:mymuseum_visitapp/translations.dart'; import 'package:mymuseum_visitapp/translations.dart';

View File

@ -1,4 +1,4 @@
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
class ResponseSubDTO { class ResponseSubDTO {
List<TranslationAndResourceDTO>? label; List<TranslationAndResourceDTO>? label;

View File

@ -1,5 +1,5 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
class SectionRead { class SectionRead {
String id = ""; String id = "";

View File

@ -1,4 +1,4 @@
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
class BeaconSection { class BeaconSection {
int? minorBeaconId; int? minorBeaconId;

View File

@ -1,5 +1,5 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
class ResourceModel { class ResourceModel {
String? id = ""; String? id = "";

View File

@ -1,4 +1,4 @@
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
class Translation { class Translation {
String? language = ""; String? language = "";

View File

@ -1,5 +1,5 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
import 'package:mymuseum_visitapp/Models/articleRead.dart'; import 'package:mymuseum_visitapp/Models/articleRead.dart';
import 'package:mymuseum_visitapp/Models/beaconSection.dart'; import 'package:mymuseum_visitapp/Models/beaconSection.dart';
import 'package:mymuseum_visitapp/Models/resourceModel.dart'; import 'package:mymuseum_visitapp/Models/resourceModel.dart';
@ -10,7 +10,7 @@ class VisitAppContext with ChangeNotifier {
String? id = ""; String? id = "";
String? language = ""; String? language = "";
String? instanceId = "633ee379d9405f32f166f047"; // 63514fd67ed8c735aaa4b8f2 MyInfoMate test instance -- Fort de Saint-Héribert Mymuseum instance id : 633ee379d9405f32f166f047 // 63514fd67ed8c735aaa4b8f1 Mymuseum test // MDLF instance 65ccc67265373befd15be511 String? instanceId = "63514fd67ed8c735aaa4b8f2"; // 63514fd67ed8c735aaa4b8f2 MyInfoMate test instance -- Fort de Saint-Héribert Mymuseum instance id : 633ee379d9405f32f166f047 // 63514fd67ed8c735aaa4b8f1 Mymuseum test // MDLF instance 65ccc67265373befd15be511
List<ConfigurationDTO>? configurations; List<ConfigurationDTO>? configurations;
ConfigurationDTO? configuration; ConfigurationDTO? configuration;

View File

@ -4,7 +4,7 @@ import 'dart:typed_data';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_widget_from_html/flutter_widget_from_html.dart'; import 'package:flutter_widget_from_html/flutter_widget_from_html.dart';
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
import 'package:mymuseum_visitapp/Components/CustomAppBar.dart'; import 'package:mymuseum_visitapp/Components/CustomAppBar.dart';
import 'package:mymuseum_visitapp/Components/loading_common.dart'; import 'package:mymuseum_visitapp/Components/loading_common.dart';
import 'package:mymuseum_visitapp/Components/SliderImages.dart'; import 'package:mymuseum_visitapp/Components/SliderImages.dart';
@ -24,9 +24,9 @@ import 'package:path_provider/path_provider.dart';
import 'audio_player_floating.dart'; import 'audio_player_floating.dart';
class ArticlePage extends StatefulWidget { class ArticlePage extends StatefulWidget {
const ArticlePage({Key? key, required this.visitAppContextIn, required this.articleId}) : super(key: key); const ArticlePage({Key? key, required this.visitAppContextIn, required this.articleDTO}) : super(key: key);
final String articleId; final ArticleDTO articleDTO;
final VisitAppContext visitAppContextIn; final VisitAppContext visitAppContextIn;
@override @override
@ -70,7 +70,7 @@ class _ArticlePageState extends State<ArticlePage> {
isTextSizeButton: true, isTextSizeButton: true,
), ),
body: FutureBuilder( body: FutureBuilder(
future: getArticle(appContext, visitAppContext.clientAPI, widget.articleId, false), future: getArticle(appContext, visitAppContext.clientAPI, widget.articleDTO.id, false),
builder: (context, AsyncSnapshot<dynamic> snapshot) { builder: (context, AsyncSnapshot<dynamic> snapshot) {
if(articleDTO != null && sectionDTO != null) { if(articleDTO != null && sectionDTO != null) {
if(size.height > size.width) { if(size.height > size.width) {
@ -387,7 +387,7 @@ class _ArticlePageState extends State<ArticlePage> {
// Not needed as it's in display logic // Not needed as it's in display logic
//ResourceModel? resourceImageOnline = await ApiService.downloadImage(client, image); //ResourceModel? resourceImageOnline = await ApiService.downloadImage(client, image);
//if(resourceImageOnline != null) { //if(resourceImageOnline != null) {
resourcesModel.add(ResourceModel(id: image.resourceId, source: image.resourceUrl, type: ResourceType.Image)); resourcesModel.add(ResourceModel(id: image.resourceId, source: image.resource?.url, type: ResourceType.Image));
/*} else { /*} else {
print("EMPTY resourcesModel online - audio"); print("EMPTY resourcesModel online - audio");
}*/ }*/

View File

@ -3,7 +3,7 @@ import 'dart:convert';
import 'package:auto_size_text/auto_size_text.dart'; import 'package:auto_size_text/auto_size_text.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_widget_from_html/flutter_widget_from_html.dart'; import 'package:flutter_widget_from_html/flutter_widget_from_html.dart';
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
import 'package:mymuseum_visitapp/Components/LanguageSelection.dart'; import 'package:mymuseum_visitapp/Components/LanguageSelection.dart';
import 'package:mymuseum_visitapp/Components/loading_common.dart'; import 'package:mymuseum_visitapp/Components/loading_common.dart';
import 'package:mymuseum_visitapp/Helpers/translationHelper.dart'; import 'package:mymuseum_visitapp/Helpers/translationHelper.dart';

View File

@ -4,7 +4,7 @@ import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:auto_size_text/auto_size_text.dart'; import 'package:auto_size_text/auto_size_text.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
import 'package:mymuseum_visitapp/Components/CustomAppBar.dart'; import 'package:mymuseum_visitapp/Components/CustomAppBar.dart';
import 'package:mymuseum_visitapp/Components/loading_common.dart'; import 'package:mymuseum_visitapp/Components/loading_common.dart';
import 'package:mymuseum_visitapp/Helpers/DatabaseHelper.dart'; import 'package:mymuseum_visitapp/Helpers/DatabaseHelper.dart';
@ -14,7 +14,6 @@ import 'package:mymuseum_visitapp/Helpers/requirement_state_controller.dart';
import 'package:mymuseum_visitapp/Helpers/translationHelper.dart'; import 'package:mymuseum_visitapp/Helpers/translationHelper.dart';
import 'package:mymuseum_visitapp/Models/beaconSection.dart'; import 'package:mymuseum_visitapp/Models/beaconSection.dart';
import 'package:mymuseum_visitapp/Models/visitContext.dart'; import 'package:mymuseum_visitapp/Models/visitContext.dart';
import 'package:mymuseum_visitapp/Screens/Visit/visit.dart';
import 'package:mymuseum_visitapp/Services/apiService.dart'; import 'package:mymuseum_visitapp/Services/apiService.dart';
import 'package:mymuseum_visitapp/Services/downloadConfiguration.dart'; import 'package:mymuseum_visitapp/Services/downloadConfiguration.dart';
import 'package:mymuseum_visitapp/app_context.dart'; import 'package:mymuseum_visitapp/app_context.dart';
@ -22,6 +21,7 @@ import 'package:mymuseum_visitapp/client.dart';
import 'package:mymuseum_visitapp/constants.dart'; import 'package:mymuseum_visitapp/constants.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import '../Tests/TestAR.dart';
import 'configurations_list.dart'; import 'configurations_list.dart';
class HomePage extends StatefulWidget { class HomePage extends StatefulWidget {
@ -50,40 +50,63 @@ class _HomePageState extends State<HomePage> with WidgetsBindingObserver {
isHomeButton: false, isHomeButton: false,
), ),
body: SingleChildScrollView( body: SingleChildScrollView(
child: SizedBox( child: Column(
width: size.width, children: [
height: size.height, SizedBox(
child: FutureBuilder( width: size.width,
future: getConfigurationsCall(visitAppContext.clientAPI, appContext), height: size.height,
builder: (context, AsyncSnapshot<dynamic> snapshot) { child: FutureBuilder(
if (snapshot.connectionState == ConnectionState.done) { future: getConfigurationsCall(visitAppContext.clientAPI, appContext),
configurations = List<ConfigurationDTO>.from(snapshot.data).where((configuration) => configuration.isMobile!).toList(); builder: (context, AsyncSnapshot<dynamic> snapshot) {
return RefreshIndicator ( if (snapshot.connectionState == ConnectionState.done) {
onRefresh: () { configurations = List<ConfigurationDTO>.from(snapshot.data).where((configuration) => configuration.isMobile!).toList();
setState(() {}); return RefreshIndicator (
return Future(() => null); onRefresh: () {
}, setState(() {});
color: kSecondColor, return Future(() => null);
child: ConfigurationsList(
alreadyDownloaded: alreadyDownloaded,
configurations: configurations,
requestRefresh: () {
setState(() {}); // For refresh
}, },
), color: kSecondColor,
); child: ConfigurationsList(
} else if (snapshot.connectionState == ConnectionState.none) { alreadyDownloaded: alreadyDownloaded,
return Text(TranslationHelper.getFromLocale("noData", appContext.getContext())); configurations: configurations,
} else { requestRefresh: () {
return Center( setState(() {}); // For refresh
child: Container( },
height: size.height * 0.15, ),
child: LoadingCommon() );
) } else if (snapshot.connectionState == ConnectionState.none) {
); return Text(TranslationHelper.getFromLocale("noData", appContext.getContext()));
} } else {
} return Center(
), child: Container(
height: size.height * 0.15,
child: LoadingCommon()
)
);
}
}
),
),
/*InkWell(
onTap: () {
Navigator.pushReplacement(
context,
MaterialPageRoute(
builder: (context) {
return TestAR();
//return XRWithQRScannerPage();
},
),
);
},
child: const SizedBox(
height: 50,
width: 10,
child: Text('TEST XR'),
),
),*/
],
) )
), ),
//floatingActionButton: ScannerBouton(appContext: appContext), //floatingActionButton: ScannerBouton(appContext: appContext),

View File

@ -4,7 +4,7 @@ import 'dart:typed_data';
//import 'package:confetti/confetti.dart'; //import 'package:confetti/confetti.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
import 'package:mymuseum_visitapp/Components/CustomAppBar.dart'; import 'package:mymuseum_visitapp/Components/CustomAppBar.dart';
import 'package:mymuseum_visitapp/Components/Loading.dart'; import 'package:mymuseum_visitapp/Components/Loading.dart';
import 'package:mymuseum_visitapp/Components/loading_common.dart'; import 'package:mymuseum_visitapp/Components/loading_common.dart';
@ -41,7 +41,7 @@ class _QuizzPageState extends State<QuizzPage> {
late Uint8List audiobytes; late Uint8List audiobytes;
late VisitAppContext visitAppContext; late VisitAppContext visitAppContext;
QuizzDTO? quizzDTO; QuizDTO? quizDTO;
List<QuestionSubDTO> _questionsSubDTO = <QuestionSubDTO>[]; List<QuestionSubDTO> _questionsSubDTO = <QuestionSubDTO>[];
//ConfettiController? _controllerCenter; //ConfettiController? _controllerCenter;
int currentIndex = 1; int currentIndex = 1;
@ -66,9 +66,9 @@ class _QuizzPageState extends State<QuizzPage> {
visitAppContext.isContentCurrentlyShown = false; visitAppContext.isContentCurrentlyShown = false;
currentIndex = 1; currentIndex = 1;
//_controllerCenter!.dispose(); //_controllerCenter!.dispose();
if(quizzDTO != null) { if(quizDTO != null) {
if(quizzDTO!.questions != null) { if(quizDTO!.questions != null) {
_questionsSubDTO = QuestionSubDTO().fromJSON(quizzDTO!.questions!); _questionsSubDTO = QuestionSubDTO().fromJSON(quizDTO!.questions!);
} }
} }
@ -84,7 +84,7 @@ class _QuizzPageState extends State<QuizzPage> {
return Scaffold( return Scaffold(
key: _scaffoldKey, key: _scaffoldKey,
appBar: CustomAppBar( appBar: CustomAppBar(
title: sectionDTO != null ? TranslationHelper.get(sectionDTO!.title, visitAppContext!) : "", title: sectionDTO != null ? TranslationHelper.get(sectionDTO!.title, visitAppContext) : "",
isHomeButton: false, isHomeButton: false,
), ),
body: OrientationBuilder( body: OrientationBuilder(
@ -92,7 +92,7 @@ class _QuizzPageState extends State<QuizzPage> {
return FutureBuilder( return FutureBuilder(
future: getQuizz(appContext, visitAppContext.clientAPI, widget.sectionId), // MAYBE MOVE THAT TO PARENT .. future: getQuizz(appContext, visitAppContext.clientAPI, widget.sectionId), // MAYBE MOVE THAT TO PARENT ..
builder: (context, AsyncSnapshot<dynamic> snapshot) { builder: (context, AsyncSnapshot<dynamic> snapshot) {
if(quizzDTO != null && sectionDTO != null) { if(quizDTO != null && sectionDTO != null) {
if(showResult) { if(showResult) {
var goodResponses = 0; var goodResponses = 0;
@ -102,20 +102,20 @@ class _QuizzPageState extends State<QuizzPage> {
} }
} }
log("goodResponses =" + goodResponses.toString()); log("goodResponses =" + goodResponses.toString());
LevelDTO levelToShow = LevelDTO(); List<TranslationAndResourceDTO> levelToShow = [];
var test = goodResponses/quizzDTO!.questions!.length; var test = goodResponses/quizDTO!.questions!.length;
if((0 == test || test < 0.25) && quizzDTO!.badLevel != null) { if((0 == test || test < 0.25) && quizDTO!.badLevel != null) {
levelToShow = quizzDTO!.badLevel!; levelToShow = quizDTO!.badLevel!;
} }
if((test>=0.25 && test < 0.5) && quizzDTO!.mediumLevel != null) { if((test>=0.25 && test < 0.5) && quizDTO!.mediumLevel != null) {
levelToShow = quizzDTO!.mediumLevel!; levelToShow = quizDTO!.mediumLevel!;
} }
if((test>=0.5 && test < 0.75) && quizzDTO!.goodLevel != null) { if((test>=0.5 && test < 0.75) && quizDTO!.goodLevel != null) {
levelToShow = quizzDTO!.goodLevel!; levelToShow = quizDTO!.goodLevel!;
} }
if((test>=0.75 && test <= 1) && quizzDTO!.greatLevel != null) { if((test>=0.75 && test <= 1) && quizDTO!.greatLevel != null) {
levelToShow = quizzDTO!.greatLevel!; levelToShow = quizDTO!.greatLevel!;
} }
return SizedBox( return SizedBox(
@ -148,11 +148,11 @@ class _QuizzPageState extends State<QuizzPage> {
if (orientation == Orientation.portrait) if (orientation == Orientation.portrait)
Column( Column(
children: [ children: [
if (!showResponses && levelToShow.label!.firstWhere((label) => label.language == visitAppContext!.language).resourceUrl != null) // TODO SUPPORT OTHER THAN IMAGES if (!showResponses && levelToShow.firstWhere((label) => label.language == visitAppContext.language).resource?.url != null) // TODO SUPPORT OTHER THAN IMAGES
resultImage(visitAppContext!, size, levelToShow, orientation), resultImage(visitAppContext, size, levelToShow, orientation),
if(!showResponses) if(!showResponses)
// TEXT BOX WITH MAIN SCORE // TEXT BOX WITH MAIN SCORE
Text('$goodResponses/${quizzDTO!.questions!.length}', textAlign: TextAlign.center, style: TextStyle(fontSize: kIsWeb ? (showResponses ? 60 : 100) : 75, color: kBackgroundSecondGrey)), Text('$goodResponses/${quizDTO!.questions!.length}', textAlign: TextAlign.center, style: TextStyle(fontSize: kIsWeb ? (showResponses ? 60 : 100) : 75, color: kBackgroundSecondGrey)),
], ],
), ),
@ -163,9 +163,9 @@ class _QuizzPageState extends State<QuizzPage> {
children: [ children: [
if(!showResponses) if(!showResponses)
// TEXT BOX WITH MAIN SCORE // TEXT BOX WITH MAIN SCORE
Text('$goodResponses/${quizzDTO!.questions!.length}', textAlign: TextAlign.center, style: TextStyle(fontSize: kIsWeb ? (showResponses ? 60 : 100) : 75, color: kBackgroundSecondGrey)), Text('$goodResponses/${quizDTO!.questions!.length}', textAlign: TextAlign.center, style: TextStyle(fontSize: kIsWeb ? (showResponses ? 60 : 100) : 75, color: kBackgroundSecondGrey)),
if (!showResponses && levelToShow.label!.firstWhere((label) => label.language == visitAppContext!.language).resourceUrl != null) if (!showResponses && levelToShow.firstWhere((label) => label.language == visitAppContext.language).resource?.url != null)
resultImage(visitAppContext!, size, levelToShow, orientation), resultImage(visitAppContext, size, levelToShow, orientation),
], ],
), ),
@ -225,7 +225,7 @@ class _QuizzPageState extends State<QuizzPage> {
showResult = false; showResult = false;
showResponses = false; showResponses = false;
currentIndex = 1; currentIndex = 1;
_questionsSubDTO = QuestionSubDTO().fromJSON(quizzDTO!.questions!); _questionsSubDTO = QuestionSubDTO().fromJSON(quizDTO!.questions!);
}); });
}, },
backgroundColor: kBackgroundSecondGrey, backgroundColor: kBackgroundSecondGrey,
@ -235,9 +235,9 @@ class _QuizzPageState extends State<QuizzPage> {
); );
} }
Future<QuizzDTO?> getQuizz(AppContext appContext, Client client, String sectionId) async { Future<QuizDTO?> getQuizz(AppContext appContext, Client client, String sectionId) async {
try { try {
if(sectionDTO == null || quizzDTO == null) { if(sectionDTO == null || quizDTO == null) {
bool isConfigOffline = (appContext.getContext() as VisitAppContext).configuration!.isOffline!; bool isConfigOffline = (appContext.getContext() as VisitAppContext).configuration!.isOffline!;
if(isConfigOffline) if(isConfigOffline)
{ {
@ -248,9 +248,9 @@ class _QuizzPageState extends State<QuizzPage> {
try { try {
SectionRead sectionRead = SectionRead(id: sectionDTO!.id!, readTime: DateTime.now().millisecondsSinceEpoch); SectionRead sectionRead = SectionRead(id: sectionDTO!.id!, readTime: DateTime.now().millisecondsSinceEpoch);
await DatabaseHelper.instance.insert(DatabaseTableType.articleRead, sectionRead.toMap()); await DatabaseHelper.instance.insert(DatabaseTableType.articleRead, sectionRead.toMap());
visitAppContext!.readSections.add(sectionRead); visitAppContext.readSections.add(sectionRead);
appContext.setContext(visitAppContext!); appContext.setContext(visitAppContext);
} catch (e) { } catch (e) {
print("DATABASE ERROR SECTIONREAD"); print("DATABASE ERROR SECTIONREAD");
print(e); print(e);
@ -269,15 +269,15 @@ class _QuizzPageState extends State<QuizzPage> {
} }
} }
if(sectionDTO!.type == SectionType.Quizz) { if(sectionDTO!.type == SectionType.Quiz) {
quizzDTO = QuizzDTO.fromJson(jsonDecode(sectionDTO!.data!)); quizDTO = QuizDTO.fromJson(jsonDecode(sectionDTO!.data!));
} }
if(quizzDTO != null) { if(quizDTO != null) {
quizzDTO!.questions!.sort((a, b) => a.order!.compareTo(b.order!)); quizDTO!.questions!.sort((a, b) => a.order!.compareTo(b.order!));
_questionsSubDTO = QuestionSubDTO().fromJSON(quizzDTO!.questions!); _questionsSubDTO = QuestionSubDTO().fromJSON(quizDTO!.questions!);
if(quizzDTO!.questions != null && quizzDTO!.questions!.isNotEmpty) { if(quizDTO!.questions != null && quizDTO!.questions!.isNotEmpty) {
quizzDTO!.questions!.sort((a, b) => a.order!.compareTo(b.order!)); quizDTO!.questions!.sort((a, b) => a.order!.compareTo(b.order!));
for (var question in quizzDTO!.questions!) { for (var question in quizDTO!.questions!) {
if(isConfigOffline) if(isConfigOffline)
{ {
// OFFLINE // OFFLINE
@ -314,7 +314,7 @@ class _QuizzPageState extends State<QuizzPage> {
} }
} }
resultImage(VisitAppContext visitAppContext, Size size, LevelDTO levelToShow, Orientation orientation) { resultImage(VisitAppContext visitAppContext, Size size, List<TranslationAndResourceDTO> levelToShow, Orientation orientation) {
return Container( return Container(
//height: size.height * 0.2, //height: size.height * 0.2,
//width: size.width * 0.25, //width: size.width * 0.25,
@ -324,11 +324,11 @@ class _QuizzPageState extends State<QuizzPage> {
), ),
alignment: Alignment.center, alignment: Alignment.center,
decoration: BoxDecoration( decoration: BoxDecoration(
image: levelToShow.label!.where((label) => label.language == visitAppContext.language).isNotEmpty ? DecorationImage( image: levelToShow.where((label) => label.language == visitAppContext.language).isNotEmpty ? DecorationImage(
fit: BoxFit.contain, fit: BoxFit.contain,
opacity: 0.85, opacity: 0.85,
image: NetworkImage( image: NetworkImage(
levelToShow.label!.firstWhere((label) => label.language == visitAppContext.language).resourceUrl!, levelToShow.firstWhere((label) => label.language == visitAppContext.language).resource!.url!,
), ),
): null, ): null,
borderRadius: const BorderRadius.all( Radius.circular(50.0)), borderRadius: const BorderRadius.all( Radius.circular(50.0)),
@ -343,7 +343,7 @@ class _QuizzPageState extends State<QuizzPage> {
color: const Color(0xff7c94b6), color: const Color(0xff7c94b6),
image: DecorationImage( image: DecorationImage(
image: NetworkImage( image: NetworkImage(
levelToShow.label!.firstWhere((label) => label.language == visitAppContext.language).resourceUrl!, // TODO REDUNDANCY here?? levelToShow.firstWhere((label) => label.language == visitAppContext.language).resource!.url!, // TODO REDUNDANCY here??
), ),
fit: BoxFit.cover, fit: BoxFit.cover,
), ),
@ -357,7 +357,7 @@ class _QuizzPageState extends State<QuizzPage> {
); );
} }
resultText(Size size, LevelDTO levelToShow, AppContext appContext) { resultText(Size size, List<TranslationAndResourceDTO> levelToShow, AppContext appContext) {
return Padding( return Padding(
padding: const EdgeInsets.only(bottom: 10), padding: const EdgeInsets.only(bottom: 10),
child: Container( child: Container(
@ -382,7 +382,7 @@ class _QuizzPageState extends State<QuizzPage> {
child: SingleChildScrollView( child: SingleChildScrollView(
child: Padding( child: Padding(
padding: const EdgeInsets.all(15.0), padding: const EdgeInsets.all(15.0),
child: Text(TranslationHelper.getWithResource(levelToShow.label, appContext.getContext() as VisitAppContext), textAlign: TextAlign.center, style: TextStyle(fontSize: kIsWeb ? kDescriptionSize : kDescriptionSize)), child: Text(TranslationHelper.getWithResource(levelToShow, appContext.getContext() as VisitAppContext), textAlign: TextAlign.center, style: TextStyle(fontSize: kIsWeb ? kDescriptionSize : kDescriptionSize)),
), ),
), ),
), ),
@ -408,7 +408,7 @@ class _QuizzPageState extends State<QuizzPage> {
showResult = false; showResult = false;
showResponses = false; showResponses = false;
currentIndex = 1; currentIndex = 1;
_questionsSubDTO = QuestionSubDTO().fromJSON(quizzDTO!.questions!); _questionsSubDTO = QuestionSubDTO().fromJSON(quizDTO!.questions!);
}); });
}, },
fontSize: 18, fontSize: 18,

View File

@ -0,0 +1,117 @@
import 'package:ar_flutter_plugin/managers/ar_location_manager.dart';
import 'package:ar_flutter_plugin/managers/ar_session_manager.dart';
import 'package:ar_flutter_plugin/managers/ar_object_manager.dart';
import 'package:ar_flutter_plugin/managers/ar_anchor_manager.dart';
import 'package:flutter/material.dart';
import 'package:ar_flutter_plugin/ar_flutter_plugin.dart';
import 'package:ar_flutter_plugin/datatypes/config_planedetection.dart';
class DebugOptionsWidget extends StatefulWidget {
DebugOptionsWidget({Key? key}) : super(key: key);
@override
_DebugOptionsWidgetState createState() => _DebugOptionsWidgetState();
}
class _DebugOptionsWidgetState extends State<DebugOptionsWidget> {
ARSessionManager? arSessionManager;
ARObjectManager? arObjectManager;
bool _showFeaturePoints = false;
bool _showPlanes = false;
bool _showWorldOrigin = false;
bool _showAnimatedGuide = true;
String _planeTexturePath = "Images/triangle.png";
bool _handleTaps = false;
@override
void dispose() {
super.dispose();
arSessionManager!.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Debug Options'),
),
body: Container(
child: Stack(children: [
ARView(
onARViewCreated: onARViewCreated,
planeDetectionConfig: PlaneDetectionConfig.horizontalAndVertical,
showPlatformType: true,
),
Align(
alignment: FractionalOffset.bottomRight,
child: Container(
width: MediaQuery.of(context).size.width * 0.5,
color: Color(0xFFFFFFF).withOpacity(0.5),
child: Column(
crossAxisAlignment: CrossAxisAlignment.end,
mainAxisSize: MainAxisSize.min,
children: [
SwitchListTile(
title: const Text('Feature Points'),
value: _showFeaturePoints,
onChanged: (bool value) {
setState(() {
_showFeaturePoints = value;
updateSessionSettings();
});
},
),
SwitchListTile(
title: const Text('Planes'),
value: _showPlanes,
onChanged: (bool value) {
setState(() {
_showPlanes = value;
updateSessionSettings();
});
},
),
SwitchListTile(
title: const Text('World Origin'),
value: _showWorldOrigin,
onChanged: (bool value) {
setState(() {
_showWorldOrigin = value;
updateSessionSettings();
});
},
),
],
),
),
),
])));
}
void onARViewCreated(
ARSessionManager arSessionManager,
ARObjectManager arObjectManager,
ARAnchorManager arAnchorManager,
ARLocationManager arLocationManager) {
this.arSessionManager = arSessionManager;
this.arObjectManager = arObjectManager;
this.arSessionManager!.onInitialize(
showFeaturePoints: _showFeaturePoints,
showPlanes: _showPlanes,
customPlaneTexturePath: _planeTexturePath,
showWorldOrigin: _showWorldOrigin,
showAnimatedGuide: _showAnimatedGuide,
handleTaps: _handleTaps,
);
this.arObjectManager!.onInitialize();
}
void updateSessionSettings() {
this.arSessionManager!.onInitialize(
showFeaturePoints: _showFeaturePoints,
showPlanes: _showPlanes,
customPlaneTexturePath: _planeTexturePath,
showWorldOrigin: _showWorldOrigin,
);
}
}

View File

@ -0,0 +1,144 @@
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:flutter/services.dart';
import 'package:ar_flutter_plugin/ar_flutter_plugin.dart';
import 'package:mymuseum_visitapp/Screens/Tests/DebugOptionsWidget.dart';
import 'package:mymuseum_visitapp/Screens/Tests/cloudtest.dart';
import 'package:mymuseum_visitapp/Screens/Tests/testother.dart';
import 'localtest.dart';
class TestAR extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<TestAR> {
String _platformVersion = 'Unknown';
static const String _title = 'AR Plugin Demo';
@override
void initState() {
super.initState();
initPlatformState();
}
// Platform messages are asynchronous, so we initialize in an async method.
Future<void> initPlatformState() async {
String platformVersion;
// Platform messages may fail, so we use a try/catch PlatformException.
try {
platformVersion = await ArFlutterPlugin.platformVersion;
} on PlatformException {
platformVersion = 'Failed to get platform version.';
}
// If the widget was removed from the tree while the asynchronous platform
// message was in flight, we want to discard the reply rather than calling
// setState to update our non-existent appearance.
if (!mounted) return;
setState(() {
_platformVersion = platformVersion;
});
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text(_title),
),
body: Column(children: [
Text('Running on: $_platformVersion\n'),
Expanded(
child: ExampleList(),
),
]),
),
);
}
}
class ExampleList extends StatelessWidget {
ExampleList({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
final examples = [
Example(
'Debug Options',
'Visualize feature points, planes and world coordinate system',
() => Navigator.push(context,
MaterialPageRoute(builder: (context) => DebugOptionsWidget()))),
/*Example(
'Local & Online Objects',
'Place 3D objects from Flutter assets and the web into the scene',
() => Navigator.push(
context,
MaterialPageRoute(
builder: (context) => LocalAndWebObjectsWidget()))),*/
Example(
'Anchors & Objects on Planes',
'Place 3D objects on detected planes using anchors',
() => Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ObjectsOnPlanesWidget()))),
Example(
'Object Transformation Gestures',
'Rotate and Pan Objects',
() => Navigator.push(context,
MaterialPageRoute(builder: (context) => ObjectGesturesWidget()))),
Example(
'Screenshots',
'Place 3D objects on planes and take screenshots',
() => Navigator.push(context,
MaterialPageRoute(builder: (context) => ScreenshotWidget()))),
/*Example(
'Cloud Anchors',
'Place and retrieve 3D objects using the Google Cloud Anchor API',
() => Navigator.push(context,
MaterialPageRoute(builder: (context) => CloudAnchorWidget()))),
Example(
'External Model Management',
'Similar to Cloud Anchors example, but uses external database to choose from available 3D models',
() => Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ExternalModelManagementWidget())))*/
];
return ListView(
children:
examples.map((example) => ExampleCard(example: example)).toList(),
);
}
}
class ExampleCard extends StatelessWidget {
ExampleCard({Key? key, required this.example}) : super(key: key);
final Example example;
@override
build(BuildContext context) {
return Card(
child: InkWell(
splashColor: Colors.blue.withAlpha(30),
onTap: () {
example.onTap();
},
child: ListTile(
title: Text(example.name),
subtitle: Text(example.description),
),
),
);
}
}
class Example {
const Example(this.name, this.description, this.onTap);
final String name;
final String description;
final Function onTap;
}

View File

@ -0,0 +1,72 @@
import 'package:flutter/material.dart';
import 'package:qr_code_scanner/qr_code_scanner.dart';
import 'package:webview_flutter/webview_flutter.dart';
class XRWithQRScannerPage extends StatefulWidget {
@override
_XRWithQRScannerPageState createState() => _XRWithQRScannerPageState();
}
class _XRWithQRScannerPageState extends State<XRWithQRScannerPage> {
String qrCode = "";
late final WebViewController _webViewController;
final GlobalKey qrKey = GlobalKey(debugLabel: 'QR');
@override
void initState() {
super.initState();
_webViewController = WebViewController()
..setJavaScriptMode(JavaScriptMode.unrestricted)
..loadRequest(Uri.parse("https://immersive-web.github.io/webxr-samples/immersive-ar-session.html"))
;
//..loadFlutterAsset('assets/files/xr_environment.html'); // Charge le fichier local
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("XR avec Scanner QR Code")),
body: Stack(
children: [
// La couche QR code scanner (superposée au-dessus de l'XR)
Positioned.fill(
child: QRView(
onQRViewCreated: (controller) {
controller.scannedDataStream.listen((scanData) {
setState(() {
qrCode = scanData.code!;
print('QR Code détecté : $qrCode');
fetchData(qrCode);
});
});
}, key: qrKey,
),
),
// La couche XR (WebXR avec Three.js ou autre moteur)
WebViewWidget(
controller: _webViewController
..setJavaScriptMode(JavaScriptMode.unrestricted)
..setBackgroundColor(Color(0x00000000))
..addJavaScriptChannel(
'WebViewChannel',
onMessageReceived: (message) {
// Message reçu de JavaScript
print(message.message);
showDialog(
context: context,
builder: (context) => AlertDialog(
content: Text(message.message),
),
);
},
),
),
],
),
);
}
Future<void> fetchData(String? qrCode) async {
print('Fetching data for QR Code: $qrCode');
}
}

View File

@ -0,0 +1,170 @@
import 'package:ar_flutter_plugin/managers/ar_location_manager.dart';
import 'package:ar_flutter_plugin/managers/ar_session_manager.dart';
import 'package:ar_flutter_plugin/managers/ar_object_manager.dart';
import 'package:ar_flutter_plugin/managers/ar_anchor_manager.dart';
import 'package:ar_flutter_plugin/models/ar_anchor.dart';
import 'package:flutter/material.dart';
import 'package:ar_flutter_plugin/ar_flutter_plugin.dart';
import 'package:ar_flutter_plugin/datatypes/config_planedetection.dart';
import 'package:ar_flutter_plugin/datatypes/node_types.dart';
import 'package:ar_flutter_plugin/datatypes/hittest_result_types.dart';
import 'package:ar_flutter_plugin/models/ar_node.dart';
import 'package:ar_flutter_plugin/models/ar_hittest_result.dart';
import 'package:flutter/services.dart';
import 'package:vector_math/vector_math_64.dart';
import 'dart:math';
class ObjectGesturesWidget extends StatefulWidget {
ObjectGesturesWidget({Key? key}) : super(key: key);
@override
_ObjectGesturesWidgetState createState() => _ObjectGesturesWidgetState();
}
class _ObjectGesturesWidgetState extends State<ObjectGesturesWidget> {
ARSessionManager? arSessionManager;
ARObjectManager? arObjectManager;
ARAnchorManager? arAnchorManager;
List<ARNode> nodes = [];
List<ARAnchor> anchors = [];
@override
void dispose() {
super.dispose();
arSessionManager!.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Object Transformation Gestures'),
),
body: Container(
child: Stack(children: [
ARView(
onARViewCreated: onARViewCreated,
planeDetectionConfig: PlaneDetectionConfig.horizontalAndVertical,
),
Align(
alignment: FractionalOffset.bottomCenter,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
ElevatedButton(
onPressed: onRemoveEverything,
child: Text("Remove Everything")),
]),
)
])));
}
void onARViewCreated(
ARSessionManager arSessionManager,
ARObjectManager arObjectManager,
ARAnchorManager arAnchorManager,
ARLocationManager arLocationManager) {
this.arSessionManager = arSessionManager;
this.arObjectManager = arObjectManager;
this.arAnchorManager = arAnchorManager;
this.arSessionManager!.onInitialize(
showFeaturePoints: false,
showPlanes: true,
customPlaneTexturePath: "Images/triangle.png",
showWorldOrigin: true,
handlePans: true,
handleRotation: true,
);
this.arObjectManager!.onInitialize();
this.arSessionManager!.onPlaneOrPointTap = onPlaneOrPointTapped;
this.arObjectManager!.onPanStart = onPanStarted;
this.arObjectManager!.onPanChange = onPanChanged;
this.arObjectManager!.onPanEnd = onPanEnded;
this.arObjectManager!.onRotationStart = onRotationStarted;
this.arObjectManager!.onRotationChange = onRotationChanged;
this.arObjectManager!.onRotationEnd = onRotationEnded;
}
Future<void> onRemoveEverything() async {
/*nodes.forEach((node) {
this.arObjectManager.removeNode(node);
});*/
anchors.forEach((anchor) {
this.arAnchorManager!.removeAnchor(anchor);
});
anchors = [];
}
Future<void> onPlaneOrPointTapped(
List<ARHitTestResult> hitTestResults) async {
var singleHitTestResult = hitTestResults.firstWhere(
(hitTestResult) => hitTestResult.type == ARHitTestResultType.plane);
if (singleHitTestResult != null) {
var newAnchor =
ARPlaneAnchor(transformation: singleHitTestResult.worldTransform);
bool? didAddAnchor = await this.arAnchorManager!.addAnchor(newAnchor);
if (didAddAnchor!) {
this.anchors.add(newAnchor);
// Add note to anchor
var newNode = ARNode(
type: NodeType.webGLB,
uri:
"assets/files/Duck.glb",
scale: Vector3(0.2, 0.2, 0.2),
position: Vector3(0.0, 0.0, 0.0),
rotation: Vector4(1.0, 0.0, 0.0, 0.0));
bool? didAddNodeToAnchor =
await this.arObjectManager!.addNode(newNode, planeAnchor: newAnchor);
if (didAddNodeToAnchor!) {
this.nodes.add(newNode);
} else {
this.arSessionManager!.onError("Adding Node to Anchor failed");
}
} else {
this.arSessionManager!.onError("Adding Anchor failed");
}
}
}
onPanStarted(String nodeName) {
print("Started panning node " + nodeName);
}
onPanChanged(String nodeName) {
print("Continued panning node " + nodeName);
}
onPanEnded(String nodeName, Matrix4 newTransform) {
print("Ended panning node " + nodeName);
final pannedNode =
this.nodes.firstWhere((element) => element.name == nodeName);
/*
* Uncomment the following command if you want to keep the transformations of the Flutter representations of the nodes up to date
* (e.g. if you intend to share the nodes through the cloud)
*/
//pannedNode.transform = newTransform;
}
onRotationStarted(String nodeName) {
print("Started rotating node " + nodeName);
}
onRotationChanged(String nodeName) {
print("Continued rotating node " + nodeName);
}
onRotationEnded(String nodeName, Matrix4 newTransform) {
print("Ended rotating node " + nodeName);
final rotatedNode =
this.nodes.firstWhere((element) => element.name == nodeName);
/*
* Uncomment the following command if you want to keep the transformations of the Flutter representations of the nodes up to date
* (e.g. if you intend to share the nodes through the cloud)
*/
//rotatedNode.transform = newTransform;
}
}

View File

@ -0,0 +1,157 @@
import 'package:ar_flutter_plugin/managers/ar_location_manager.dart';
import 'package:ar_flutter_plugin/managers/ar_session_manager.dart';
import 'package:ar_flutter_plugin/managers/ar_object_manager.dart';
import 'package:ar_flutter_plugin/managers/ar_anchor_manager.dart';
import 'package:ar_flutter_plugin/models/ar_anchor.dart';
import 'package:flutter/material.dart';
import 'package:ar_flutter_plugin/ar_flutter_plugin.dart';
import 'package:ar_flutter_plugin/datatypes/config_planedetection.dart';
import 'package:ar_flutter_plugin/datatypes/node_types.dart';
import 'package:ar_flutter_plugin/datatypes/hittest_result_types.dart';
import 'package:ar_flutter_plugin/models/ar_node.dart';
import 'package:ar_flutter_plugin/models/ar_hittest_result.dart';
import 'package:vector_math/vector_math_64.dart';
class ScreenshotWidget extends StatefulWidget {
const ScreenshotWidget({Key? key}) : super(key: key);
@override
_ScreenshotWidgetState createState() => _ScreenshotWidgetState();
}
class _ScreenshotWidgetState extends State<ScreenshotWidget> {
ARSessionManager? arSessionManager;
ARObjectManager? arObjectManager;
ARAnchorManager? arAnchorManager;
List<ARNode> nodes = [];
List<ARAnchor> anchors = [];
@override
void dispose() {
super.dispose();
arSessionManager!.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Screenshots'),
),
body:
Container(
child:
Stack(children: [
ARView(
onARViewCreated: onARViewCreated,
planeDetectionConfig: PlaneDetectionConfig.horizontalAndVertical,
),
Align(
alignment: FractionalOffset.bottomCenter,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
ElevatedButton(
onPressed: onRemoveEverything,
child: const Text("Remove Everything")),
ElevatedButton(
onPressed: onTakeScreenshot,
child: const Text("Take Screenshot")),
]),
)
])));
}
void onARViewCreated(
ARSessionManager arSessionManager,
ARObjectManager arObjectManager,
ARAnchorManager arAnchorManager,
ARLocationManager arLocationManager) {
this.arSessionManager = arSessionManager;
this.arObjectManager = arObjectManager;
this.arAnchorManager = arAnchorManager;
this.arSessionManager!.onInitialize(
showFeaturePoints: false,
showPlanes: true,
customPlaneTexturePath: "Images/triangle.png",
showWorldOrigin: true,
);
this.arObjectManager!.onInitialize();
this.arSessionManager!.onPlaneOrPointTap = onPlaneOrPointTapped;
this.arObjectManager!.onNodeTap = onNodeTapped;
}
Future<void> onRemoveEverything() async {
/*nodes.forEach((node) {
this.arObjectManager.removeNode(node);
});*/
// anchors.forEach((anchor)
for (var anchor in anchors)
{
arAnchorManager!.removeAnchor(anchor);
};
anchors = [];
}
Future<void> onTakeScreenshot() async {
var image = await arSessionManager!.snapshot();
await showDialog(
context: context,
builder: (_) => Dialog(
child: Container(
decoration: BoxDecoration(
image: DecorationImage(image: image, fit: BoxFit.cover)),
),
));
}
Future<void> onNodeTapped(List<String> nodes) async {
var number = nodes.length;
arSessionManager!.onError("Tapped $number node(s)");
}
Future<void> onPlaneOrPointTapped(
List<ARHitTestResult> hitTestResults) async {
var singleHitTestResult = hitTestResults.firstWhere(
(hitTestResult) => hitTestResult.type == ARHitTestResultType.plane);
if (singleHitTestResult != null) {
var newAnchor =
ARPlaneAnchor(transformation: singleHitTestResult.worldTransform);
bool? didAddAnchor = await arAnchorManager!.addAnchor(newAnchor);
if (didAddAnchor != null && didAddAnchor) {
anchors.add(newAnchor);
// Add note to anchor
var newNode = ARNode(
type: NodeType.webGLB,
uri:
"https://github.com/KhronosGroup/glTF-Sample-Models/blob/main/2.0/Duck/glTF-Binary/Duck.glb",
scale: Vector3(0.2, 0.2, 0.2),
position: Vector3(0.0, 0.0, 0.0),
rotation: Vector4(1.0, 0.0, 0.0, 0.0));
bool? didAddNodeToAnchor =
await arObjectManager!.addNode(newNode, planeAnchor: newAnchor);
if (didAddNodeToAnchor != null && didAddNodeToAnchor) {
nodes.add(newNode);
} else {
arSessionManager!.onError("Adding Node to Anchor failed");
}
} else {
arSessionManager!.onError("Adding Anchor failed");
}
/*
// To add a node to the tapped position without creating an anchor, use the following code (Please mind: the function onRemoveEverything has to be adapted accordingly!):
var newNode = ARNode(
type: NodeType.localGLTF2,
uri: "Models/Chicken_01/Chicken_01.gltf",
scale: Vector3(0.2, 0.2, 0.2),
transformation: singleHitTestResult.worldTransform);
bool didAddWebNode = await this.arObjectManager.addNode(newNode);
if (didAddWebNode) {
this.nodes.add(newNode);
}*/
}
}
}

View File

@ -0,0 +1,139 @@
import 'package:ar_flutter_plugin/managers/ar_location_manager.dart';
import 'package:ar_flutter_plugin/managers/ar_session_manager.dart';
import 'package:ar_flutter_plugin/managers/ar_object_manager.dart';
import 'package:ar_flutter_plugin/managers/ar_anchor_manager.dart';
import 'package:ar_flutter_plugin/models/ar_anchor.dart';
import 'package:flutter/material.dart';
import 'package:ar_flutter_plugin/ar_flutter_plugin.dart';
import 'package:ar_flutter_plugin/datatypes/config_planedetection.dart';
import 'package:ar_flutter_plugin/datatypes/node_types.dart';
import 'package:ar_flutter_plugin/datatypes/hittest_result_types.dart';
import 'package:ar_flutter_plugin/models/ar_node.dart';
import 'package:ar_flutter_plugin/models/ar_hittest_result.dart';
import 'package:flutter/services.dart';
import 'package:vector_math/vector_math_64.dart';
import 'dart:math';
class ObjectsOnPlanesWidget extends StatefulWidget {
ObjectsOnPlanesWidget({Key? key}) : super(key: key);
@override
_ObjectsOnPlanesWidgetState createState() => _ObjectsOnPlanesWidgetState();
}
class _ObjectsOnPlanesWidgetState extends State<ObjectsOnPlanesWidget> {
ARSessionManager? arSessionManager;
ARObjectManager? arObjectManager;
ARAnchorManager? arAnchorManager;
List<ARNode> nodes = [];
List<ARAnchor> anchors = [];
@override
void dispose() {
super.dispose();
arSessionManager!.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Anchors & Objects on Planes'),
),
body: Container(
child: Stack(children: [
ARView(
onARViewCreated: onARViewCreated,
planeDetectionConfig: PlaneDetectionConfig.horizontalAndVertical,
),
Align(
alignment: FractionalOffset.bottomCenter,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
ElevatedButton(
onPressed: onRemoveEverything,
child: Text("Remove Everything")),
]),
)
])));
}
void onARViewCreated(
ARSessionManager arSessionManager,
ARObjectManager arObjectManager,
ARAnchorManager arAnchorManager,
ARLocationManager arLocationManager) {
this.arSessionManager = arSessionManager;
this.arObjectManager = arObjectManager;
this.arAnchorManager = arAnchorManager;
this.arSessionManager!.onInitialize(
showFeaturePoints: false,
showPlanes: true,
customPlaneTexturePath: "Images/triangle.png",
showWorldOrigin: true,
);
this.arObjectManager!.onInitialize();
this.arSessionManager!.onPlaneOrPointTap = onPlaneOrPointTapped;
this.arObjectManager!.onNodeTap = onNodeTapped;
}
Future<void> onRemoveEverything() async {
/*nodes.forEach((node) {
this.arObjectManager.removeNode(node);
});*/
anchors.forEach((anchor) {
this.arAnchorManager!.removeAnchor(anchor);
});
anchors = [];
}
Future<void> onNodeTapped(List<String> nodes) async {
var number = nodes.length;
this.arSessionManager!.onError("Tapped $number node(s)");
}
Future<void> onPlaneOrPointTapped(
List<ARHitTestResult> hitTestResults) async {
var singleHitTestResult = hitTestResults.firstWhere(
(hitTestResult) => hitTestResult.type == ARHitTestResultType.plane);
if (singleHitTestResult != null) {
var newAnchor =
ARPlaneAnchor(transformation: singleHitTestResult.worldTransform);
bool? didAddAnchor = await this.arAnchorManager!.addAnchor(newAnchor);
if (didAddAnchor!) {
this.anchors.add(newAnchor);
// Add note to anchor
var newNode = ARNode(
type: NodeType.webGLB,
uri:
"https://github.com/KhronosGroup/glTF-Sample-Models/blob/main/2.0/Duck/glTF-Binary/Duck.glb",
scale: Vector3(0.2, 0.2, 0.2),
position: Vector3(0.0, 0.0, 0.0),
rotation: Vector4(1.0, 0.0, 0.0, 0.0));
bool? didAddNodeToAnchor =
await this.arObjectManager!.addNode(newNode, planeAnchor: newAnchor);
if (didAddNodeToAnchor!) {
this.nodes.add(newNode);
} else {
this.arSessionManager!.onError("Adding Node to Anchor failed");
}
} else {
this.arSessionManager!.onError("Adding Anchor failed");
}
/*
// To add a node to the tapped position without creating an anchor, use the following code (Please mind: the function onRemoveEverything has to be adapted accordingly!):
var newNode = ARNode(
type: NodeType.localGLTF2,
uri: "Models/Chicken_01/Chicken_01.gltf",
scale: Vector3(0.2, 0.2, 0.2),
transformation: singleHitTestResult.worldTransform);
bool didAddWebNode = await this.arObjectManager.addNode(newNode);
if (didAddWebNode) {
this.nodes.add(newNode);
}*/
}
}
}

View File

@ -3,7 +3,7 @@ import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_widget_from_html/flutter_widget_from_html.dart'; import 'package:flutter_widget_from_html/flutter_widget_from_html.dart';
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
import 'package:mymuseum_visitapp/Components/Loading.dart'; import 'package:mymuseum_visitapp/Components/Loading.dart';
import 'package:mymuseum_visitapp/Components/SearchBox.dart'; import 'package:mymuseum_visitapp/Components/SearchBox.dart';
import 'package:mymuseum_visitapp/Components/SearchNumberBox.dart'; import 'package:mymuseum_visitapp/Components/SearchNumberBox.dart';

View File

@ -1,6 +1,6 @@
import 'package:diacritic/diacritic.dart'; import 'package:diacritic/diacritic.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
import 'package:mymuseum_visitapp/Components/loading_common.dart'; import 'package:mymuseum_visitapp/Components/loading_common.dart';
import 'package:mymuseum_visitapp/Components/SearchBox.dart'; import 'package:mymuseum_visitapp/Components/SearchBox.dart';
import 'package:mymuseum_visitapp/Components/SearchNumberBox.dart'; import 'package:mymuseum_visitapp/Components/SearchNumberBox.dart';
@ -113,7 +113,7 @@ class _BodyState extends State<Body> {
), ),
); );
break; break;
case SectionType.Quizz: case SectionType.Quiz:
Navigator.push( Navigator.push(
context, context,
MaterialPageRoute( MaterialPageRoute(
@ -166,7 +166,7 @@ class _BodyState extends State<Body> {
List<SectionDTO>? sectionsDownloaded = await ApiService.getAllSections(visitAppContext.clientAPI, visitAppContext.configuration!.id!); List<SectionDTO>? sectionsDownloaded = await ApiService.getAllSections(visitAppContext.clientAPI, visitAppContext.configuration!.id!);
//print(sectionsDownloaded); //print(sectionsDownloaded);
if(sectionsDownloaded!.isNotEmpty) { if(sectionsDownloaded!.isNotEmpty) {
sections = sectionsDownloaded.where((s) => s.type == SectionType.Article || s.type == SectionType.Quizz).toList(); // TODO Support more than Article and Quizz section type sections = sectionsDownloaded.where((s) => s.type == SectionType.Article || s.type == SectionType.Quiz).toList(); // TODO Support more than Article and Quizz section type
//print(sections); //print(sections);
} }
} }

View File

@ -2,7 +2,7 @@ import 'dart:convert';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_widget_from_html/flutter_widget_from_html.dart'; import 'package:flutter_widget_from_html/flutter_widget_from_html.dart';
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
import 'package:mymuseum_visitapp/Components/loading_common.dart'; import 'package:mymuseum_visitapp/Components/loading_common.dart';
import 'package:mymuseum_visitapp/Helpers/DatabaseHelper.dart'; import 'package:mymuseum_visitapp/Helpers/DatabaseHelper.dart';
import 'package:mymuseum_visitapp/Helpers/translationHelper.dart'; import 'package:mymuseum_visitapp/Helpers/translationHelper.dart';

View File

@ -6,7 +6,7 @@ import 'package:flutter/services.dart';
import 'package:flutter_beacon/flutter_beacon.dart'; import 'package:flutter_beacon/flutter_beacon.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:intl/intl.dart'; import 'package:intl/intl.dart';
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
import 'package:mymuseum_visitapp/Components/CustomAppBar.dart'; import 'package:mymuseum_visitapp/Components/CustomAppBar.dart';
import 'package:mymuseum_visitapp/Components/ScannerBouton.dart'; import 'package:mymuseum_visitapp/Components/ScannerBouton.dart';
import 'package:mymuseum_visitapp/Helpers/requirement_state_controller.dart'; import 'package:mymuseum_visitapp/Helpers/requirement_state_controller.dart';
@ -299,7 +299,7 @@ class _VisitPageState extends State<VisitPage> with WidgetsBindingObserver {
), ),
); );
break; break;
case SectionType.Quizz: case SectionType.Quiz:
Navigator.push( Navigator.push(
context, context,
MaterialPageRoute( MaterialPageRoute(

View File

@ -0,0 +1,423 @@
import 'dart:convert';
import 'dart:developer';
import 'dart:typed_data';
//import 'package:confetti/confetti.dart';
import 'package:flutter/material.dart';
import 'package:manager_api_new/api.dart';
import 'package:mymuseum_visitapp/Components/CustomAppBar.dart';
import 'package:mymuseum_visitapp/Components/Loading.dart';
import 'package:mymuseum_visitapp/Components/loading_common.dart';
import 'package:mymuseum_visitapp/Components/rounded_button.dart';
import 'package:mymuseum_visitapp/Helpers/DatabaseHelper.dart';
import 'package:mymuseum_visitapp/Helpers/translationHelper.dart';
import 'package:mymuseum_visitapp/Models/ResponseSubDTO.dart';
import 'package:mymuseum_visitapp/Models/articleRead.dart';
import 'package:mymuseum_visitapp/Models/resourceModel.dart';
import 'package:mymuseum_visitapp/Models/visitContext.dart';
//import 'package:mymuseum_visitapp/Screens/Quizz/drawPath.dart';
import 'package:mymuseum_visitapp/Screens/Quizz/questions_list.dart';
//import 'package:mymuseum_visitapp/Screens/Quizz/showResponses.dart';
import 'package:mymuseum_visitapp/app_context.dart';
import 'package:mymuseum_visitapp/client.dart';
import 'package:mymuseum_visitapp/constants.dart';
import 'package:provider/provider.dart';
class SectionPage extends StatefulWidget {
const SectionPage({Key? key, required this.visitAppContextIn, required this.sectionId}) : super(key: key);
final String sectionId;
final VisitAppContext visitAppContextIn;
@override
State<SectionPage> createState() => _SectionPageState();
}
class _SectionPageState extends State<SectionPage> {
final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey<ScaffoldState>();
SectionDTO? sectionDTO;
late VisitAppContext visitAppContext;
late dynamic rawSectionData;
@override
void initState() {
widget.visitAppContextIn.isContentCurrentlyShown = true;
//_controllerCenter = ConfettiController(duration: const Duration(seconds: 10));
//_controllerCenter!.play();
super.initState();
}
@override
void dispose() {
visitAppContext.isContentCurrentlyShown = false;
super.dispose();
}
@override
Widget build(BuildContext context) {
final appContext = Provider.of<AppContext>(context);
Size size = MediaQuery.of(context).size;
visitAppContext = appContext.getContext();
return Scaffold(
key: _scaffoldKey,
appBar: CustomAppBar(
title: sectionDTO != null ? TranslationHelper.get(sectionDTO!.title, visitAppContext) : "",
isHomeButton: false,
),
body: OrientationBuilder(
builder: (context, orientation) {
return FutureBuilder(
future: getSectionDetail(appContext, visitAppContext.clientAPI, widget.sectionId), // MAYBE MOVE THAT TO PARENT ..
builder: (context, AsyncSnapshot<dynamic> snapshot) {
if(quizDTO != null && sectionDTO != null) {
if(showResult) {
var goodResponses = 0;
for (var question in _questionsSubDTO) {
if(question.chosen == question.responsesSubDTO!.indexWhere((response) => response.isGood!)) {
goodResponses +=1;
}
}
log("goodResponses =" + goodResponses.toString());
List<TranslationAndResourceDTO> levelToShow = [];
var test = goodResponses/quizDTO!.questions!.length;
if((0 == test || test < 0.25) && quizDTO!.badLevel != null) {
levelToShow = quizDTO!.badLevel!;
}
if((test>=0.25 && test < 0.5) && quizDTO!.mediumLevel != null) {
levelToShow = quizDTO!.mediumLevel!;
}
if((test>=0.5 && test < 0.75) && quizDTO!.goodLevel != null) {
levelToShow = quizDTO!.goodLevel!;
}
if((test>=0.75 && test <= 1) && quizDTO!.greatLevel != null) {
levelToShow = quizDTO!.greatLevel!;
}
return SizedBox(
width: double.infinity,
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceAround,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
/*Center(
child: SizedBox(
width: 5,
height: 5,
child: ConfettiWidget(
confettiController: _controllerCenter!,
blastDirectionality: BlastDirectionality.explosive,
shouldLoop: false, // start again as soon as the animation is finished
colors: const [
kMainColor,
kSecondColor,
kConfigurationColor,
kMainColor1
//Colors.pink,
//Colors.orange,
//Colors.purple
], // manually specify the colors to be used
createParticlePath: drawPath, // define a custom shape/path.
),
),
),*/
if (orientation == Orientation.portrait)
Column(
children: [
if (!showResponses && levelToShow.firstWhere((label) => label.language == visitAppContext.language).resource?.url != null) // TODO SUPPORT OTHER THAN IMAGES
resultImage(visitAppContext, size, levelToShow, orientation),
if(!showResponses)
// TEXT BOX WITH MAIN SCORE
Text('$goodResponses/${quizDTO!.questions!.length}', textAlign: TextAlign.center, style: TextStyle(fontSize: kIsWeb ? (showResponses ? 60 : 100) : 75, color: kBackgroundSecondGrey)),
],
),
if (orientation == Orientation.landscape)
Row(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
if(!showResponses)
// TEXT BOX WITH MAIN SCORE
Text('$goodResponses/${quizDTO!.questions!.length}', textAlign: TextAlign.center, style: TextStyle(fontSize: kIsWeb ? (showResponses ? 60 : 100) : 75, color: kBackgroundSecondGrey)),
if (!showResponses && levelToShow.firstWhere((label) => label.language == visitAppContext.language).resource?.url != null)
resultImage(visitAppContext, size, levelToShow, orientation),
],
),
if(!showResponses)
// TEXT BOX WITH LEVEL TEXT RESULT
resultText(size, levelToShow, appContext),
if(showResponses)
QuestionsListWidget(
questionsSubDTO: _questionsSubDTO,
isShowResponse: true,
onShowResponse: () {},
orientation: orientation,
),
// RESPONSE BOX
//ShowReponsesWidget(questionsSubDTO: _questionsSubDTO),
if(orientation == Orientation.portrait && !showResponses)
// Buttons
Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
crossAxisAlignment: CrossAxisAlignment.center,
children: resultButtons(size, orientation, visitAppContext!),
),
if(orientation == Orientation.landscape && !showResponses)
// Buttons
Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
crossAxisAlignment: CrossAxisAlignment.center,
children: resultButtons(size, orientation, visitAppContext!),
),
],
),
);
} else {
return QuestionsListWidget(
isShowResponse: false,
questionsSubDTO: _questionsSubDTO,
onShowResponse: () {
setState(() {
showResult = true;
});
},
orientation: orientation,
);
}
} else {
return const LoadingCommon();
}
}
);
}
),
floatingActionButton: showResponses ? FloatingActionButton(
onPressed: () {
setState(() {
showResult = false;
showResponses = false;
currentIndex = 1;
_questionsSubDTO = QuestionSubDTO().fromJSON(quizDTO!.questions!);
});
},
backgroundColor: kBackgroundSecondGrey,
child: const Icon(Icons.undo),
) : null,
floatingActionButtonLocation: FloatingActionButtonLocation.miniEndFloat,
);
}
Future<dynamic> getSectionDetail(AppContext appContext, Client client, String sectionId) async {
try {
if(sectionDTO == null) {
bool isConfigOffline = (appContext.getContext() as VisitAppContext).configuration!.isOffline!;
if(isConfigOffline)
{
// OFFLINE
List<Map<String, dynamic>> sectionTest = await DatabaseHelper.instance.queryWithColumnId(DatabaseTableType.sections, sectionId);
if(sectionTest.isNotEmpty) {
sectionDTO = DatabaseHelper.instance.getSectionFromDB(sectionTest.first);
try {
SectionRead sectionRead = SectionRead(id: sectionDTO!.id!, readTime: DateTime.now().millisecondsSinceEpoch);
await DatabaseHelper.instance.insert(DatabaseTableType.articleRead, sectionRead.toMap());
visitAppContext.readSections.add(sectionRead);
appContext.setContext(visitAppContext);
} catch (e) {
print("DATABASE ERROR SECTIONREAD");
print(e);
}
} else {
print("EMPTY SECTION");
}
} else
{
// ONLINE
SectionDTO? sectionOnline = await client.sectionApi!.sectionGetDetail(sectionId);
if(sectionOnline != null) {
sectionDTO = sectionOnline;
} else {
print("EMPTY SECTION");
}
}
if(sectionDTO!.type == SectionType.Quiz) {
quizDTO = QuizDTO.fromJson(jsonDecode(sectionDTO!.data!));
}
if(quizDTO != null) {
quizDTO!.questions!.sort((a, b) => a.order!.compareTo(b.order!));
_questionsSubDTO = QuestionSubDTO().fromJSON(quizDTO!.questions!);
if(quizDTO!.questions != null && quizDTO!.questions!.isNotEmpty) {
quizDTO!.questions!.sort((a, b) => a.order!.compareTo(b.order!));
for (var question in quizDTO!.questions!) {
if(isConfigOffline)
{
// OFFLINE
if(question.imageBackgroundResourceId != null) {
List<Map<String, dynamic>> ressourceQuizz = await DatabaseHelper.instance.queryWithColumnId(DatabaseTableType.resources, question.imageBackgroundResourceId!);
if(ressourceQuizz.isNotEmpty) {
resourcesModel.add(DatabaseHelper.instance.getResourceFromDB(ressourceQuizz.first));
} else {
print("EMPTY resourcesModel - second");
}
}
}
else
{
// ONLINE
if(question.imageBackgroundResourceId != null) {
resourcesModel.add(ResourceModel(id: question.imageBackgroundResourceId, source: question.imageBackgroundResourceUrl, type: ResourceType.Image));
}
}
}
}
}
setState(() {
//print(sectionDTO!.title);
});
} else {
return null; // TODO return local list..
}
} catch (e) {
print(e);
print("IN CATCH");
return null;
}
}
resultImage(VisitAppContext visitAppContext, Size size, List<TranslationAndResourceDTO> levelToShow, Orientation orientation) {
return Container(
//height: size.height * 0.2,
//width: size.width * 0.25,
constraints: BoxConstraints(
maxHeight: size.height * 0.25,
maxWidth: kIsWeb ? size.width * 0.20 : orientation == Orientation.portrait ? size.width * 0.85 : size.width * 0.4,
),
alignment: Alignment.center,
decoration: BoxDecoration(
image: levelToShow.where((label) => label.language == visitAppContext.language).isNotEmpty ? DecorationImage(
fit: BoxFit.contain,
opacity: 0.85,
image: NetworkImage(
levelToShow.firstWhere((label) => label.language == visitAppContext.language).resource!.url!,
),
): null,
borderRadius: const BorderRadius.all( Radius.circular(50.0)),
border: Border.all(
color: kBackgroundGrey,
width: 1.0,
),
),
child: Container(
//borderRadius: BorderRadius.all(Radius.circular(25.0)),
decoration: BoxDecoration(
color: const Color(0xff7c94b6),
image: DecorationImage(
image: NetworkImage(
levelToShow.firstWhere((label) => label.language == visitAppContext.language).resource!.url!, // TODO REDUNDANCY here??
),
fit: BoxFit.cover,
),
borderRadius: const BorderRadius.all( Radius.circular(50.0)),
border: Border.all(
color: kBackgroundGrey,
width: 1.0,
),
),
),
);
}
resultText(Size size, List<TranslationAndResourceDTO> levelToShow, AppContext appContext) {
return Padding(
padding: const EdgeInsets.only(bottom: 10),
child: Container(
width: size.width *0.75,
height: kIsWeb ? (showResponses ? size.height *0.10 : size.height *0.20) : size.height *0.25,
decoration: BoxDecoration(
color: kBackgroundLight, //kBackgroundLight
shape: BoxShape.rectangle,
borderRadius: BorderRadius.circular(10.0),
boxShadow: const [
BoxShadow(
color: kBackgroundSecondGrey,
spreadRadius: 0.3,
blurRadius: 4,
offset: Offset(0, 2), // changes position of shadow
),
],
),
child: Center(
child: SizedBox(
width: double.infinity,
child: SingleChildScrollView(
child: Padding(
padding: const EdgeInsets.all(15.0),
child: Text(TranslationHelper.getWithResource(levelToShow, appContext.getContext() as VisitAppContext), textAlign: TextAlign.center, style: TextStyle(fontSize: kIsWeb ? kDescriptionSize : kDescriptionSize)),
),
),
),
),
),
);
}
resultButtons(Size size, Orientation orientation, VisitAppContext visitAppContext) {
return [
Padding(
padding: const EdgeInsets.all(4),
child: SizedBox(
height: kIsWeb ? 50 : 40,
width: orientation == Orientation.portrait ? size.width * 0.6 : size.width * 0.35,
child: RoundedButton(
text: TranslationHelper.getFromLocale("restart", visitAppContext),
color: kBackgroundSecondGrey,
textColor: kBackgroundLight,
icon: Icons.undo,
press: () {
setState(() {
showResult = false;
showResponses = false;
currentIndex = 1;
_questionsSubDTO = QuestionSubDTO().fromJSON(quizDTO!.questions!);
});
},
fontSize: 18,
horizontal: 20,
vertical: 5
),
),
),
Padding(
padding: const EdgeInsets.all(4.0),
child: SizedBox(
height: kIsWeb ? 50 : 40,
width: orientation == Orientation.portrait ? size.width * 0.6 : size.width * 0.35,
child: RoundedButton(
text: TranslationHelper.getFromLocale("responses", visitAppContext),
color: kBackgroundSecondGrey,
textColor: kBackgroundLight,
icon: Icons.assignment_turned_in,
press: () {
setState(() {
showResponses = true;
});
},
fontSize: 18,
horizontal: 20,
vertical: 5
),
),
)
];
}
}

View File

@ -1,7 +1,7 @@
import 'dart:convert'; import 'dart:convert';
import 'dart:io'; import 'dart:io';
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
import 'package:mymuseum_visitapp/Helpers/DatabaseHelper.dart'; import 'package:mymuseum_visitapp/Helpers/DatabaseHelper.dart';
import 'package:mymuseum_visitapp/Helpers/networkCheck.dart'; import 'package:mymuseum_visitapp/Helpers/networkCheck.dart';
import 'package:mymuseum_visitapp/Models/resourceModel.dart'; import 'package:mymuseum_visitapp/Models/resourceModel.dart';
@ -22,7 +22,7 @@ class ApiService {
if(configurations.isNotEmpty) { if(configurations.isNotEmpty) {
for(var configuration in configurations) { for(var configuration in configurations) {
if(configuration.imageId != null) { if(configuration.imageId != null) {
await downloadAndPushLocalImage(client, ContentDTO(resourceUrl: configuration.imageSource, resourceId: configuration.imageId)); await downloadAndPushLocalImage(client, ContentDTO(resource: ResourceDTO(url: configuration.imageSource, id: configuration.imageId)));
} }
} }
} }
@ -98,13 +98,13 @@ class ApiService {
} }
} }
static Future<ResourceModel?> downloadImage(Client client, ContentDTO contentDTO) async { static Future<ResourceModel?> downloadImage(Client client, ContentDTO contentDTO) async { // TODO CHECK wtf mymuseum
var source = contentDTO.resourceUrl; var source = contentDTO.resource!.url;
//print("SOURCE getAndDownloadImage"); //print("SOURCE getAndDownloadImage");
if(contentDTO.resourceUrl != null) { if(contentDTO.resource!.url != null) {
if(contentDTO.resourceUrl!.contains("localhost:5000")){ if(contentDTO.resource!.url!.contains("localhost:5000")){
print("Contains localhost:5000"); print("Contains localhost:5000");
source = contentDTO.resourceUrl!.replaceAll("http://localhost:5000", client.apiApi!.basePath); source = contentDTO.resource!.url!.replaceAll("http://localhost:5000", client.apiApi!.basePath);
} }
} else { } else {
source = "https://api.mymuseum.be/api/Resource/"+contentDTO.resourceId!; // TODO UPDATE ROUTE source = "https://api.mymuseum.be/api/Resource/"+contentDTO.resourceId!; // TODO UPDATE ROUTE
@ -118,7 +118,7 @@ class ApiService {
await for(dynamic d in response) { _downloadData.addAll(d); } await for(dynamic d in response) { _downloadData.addAll(d); }
//print("AFTER"); //print("AFTER");
final base64Str = base64.encode(_downloadData); final base64Str = base64.encode(_downloadData);
ResourceModel resourceModel = ResourceModel(id: contentDTO.resourceId, source: contentDTO.resourceUrl, path: base64Str, type: ResourceType.Image); ResourceModel resourceModel = ResourceModel(id: contentDTO.resourceId, source: contentDTO.resource!.url, path: base64Str, type: ResourceType.Image);
return resourceModel; return resourceModel;
} }
@ -192,8 +192,7 @@ class ApiService {
try { try {
bool isOnline = await hasNetwork(); bool isOnline = await hasNetwork();
if(isOnline) { if(isOnline) {
ExportConfigurationDTO? exportConfiguration = await client.configurationApi!.configurationExport(configurationId, language); ExportConfigurationDTO? exportConfiguration = await client.configurationApi!.configurationExport(configurationId, language: language);
return exportConfiguration; return exportConfiguration;
} else { } else {
return null; // TODO return local list.. return null; // TODO return local list..

View File

@ -2,7 +2,7 @@ import 'dart:convert';
import 'dart:io'; import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
import 'package:mymuseum_visitapp/Helpers/DatabaseHelper.dart'; import 'package:mymuseum_visitapp/Helpers/DatabaseHelper.dart';
import 'package:mymuseum_visitapp/Helpers/modelsHelper.dart'; import 'package:mymuseum_visitapp/Helpers/modelsHelper.dart';
import 'package:mymuseum_visitapp/Helpers/translationHelper.dart'; import 'package:mymuseum_visitapp/Helpers/translationHelper.dart';
@ -61,7 +61,7 @@ class _DownloadConfigurationWidgetState extends State<DownloadConfigurationWidge
ExportConfigurationDTO? exportConfigurationDTO; ExportConfigurationDTO? exportConfigurationDTO;
try{ try{
// Retrieve all url from resource to download (get all resource from configuration en somme) // Retrieve all url from resource to download (get all resource from configuration en somme)
exportConfigurationDTO = await visitAppContext.clientAPI.configurationApi!.configurationExport(widget.configuration.id!, isAllLanguages ? null : visitAppContext.language); // tabletAppContext.configuration!.id! // 65c5f0ee4c030e63ce16bff5 TODO Remove exportConfigurationDTO = await visitAppContext.clientAPI.configurationApi!.configurationExport(widget.configuration.id!, language: isAllLanguages ? null : visitAppContext.language); // tabletAppContext.configuration!.id! // 65c5f0ee4c030e63ce16bff5 TODO Remove
} catch(e) { } catch(e) {
print("Erreur lors du téléchargement de la configuration et de ses ressources !"); print("Erreur lors du téléchargement de la configuration et de ses ressources !");
print(e); print(e);
@ -148,7 +148,7 @@ class _DownloadConfigurationWidgetState extends State<DownloadConfigurationWidge
if(sections!.isNotEmpty) { if(sections!.isNotEmpty) {
List<SectionDTO> sectionsInDB = await DatabaseHelper.instance.queryWithConfigurationId(DatabaseTableType.sections, widget.configuration.id!); List<SectionDTO> sectionsInDB = await DatabaseHelper.instance.queryWithConfigurationId(DatabaseTableType.sections, widget.configuration.id!);
List<SectionDTO> sectionsToKeep = sections.where((s) => s.type == SectionType.Article || s.type == SectionType.Quizz).toList(); // TODO handle other type of section (for now, Article and Quizz) List<SectionDTO> sectionsToKeep = sections.where((s) => s.type == SectionType.Article || s.type == SectionType.Quiz).toList(); // TODO handle other type of section (for now, Article and Quizz)
sectionsToKeep.sort((a,b) => a.order!.compareTo(b.order!)); sectionsToKeep.sort((a,b) => a.order!.compareTo(b.order!));
int newOrder = 0; int newOrder = 0;

View File

@ -1,12 +1,12 @@
// Openapi Generator last run: : 2025-05-27T14:44:29.936214
import 'package:openapi_generator_annotations/openapi_generator_annotations.dart'; import 'package:openapi_generator_annotations/openapi_generator_annotations.dart';
@Openapi( @Openapi(
additionalProperties: additionalProperties:
AdditionalProperties(pubName: 'manager_api', pubAuthor: 'Fransolet Thomas', useEnumExtension: true), AdditionalProperties(pubName: 'manager_api_new', pubAuthor: 'Fransolet Thomas', useEnumExtension: true),
inputSpecFile: 'lib/api/swagger.yaml', inputSpec: InputSpec(path: 'lib/api/swagger.yaml'),
generatorName: Generator.dart, generatorName: Generator.dart,
alwaysRun: true, outputDirectory: 'manager_api_new')
outputDirectory: 'manager_api')
class Example extends OpenapiGeneratorConfig {} class Example extends OpenapiGeneratorConfig {}
/* /*

View File

@ -1,7 +1,7 @@
//import 'package:managerapi/api.dart'; //import 'package:managerapi/api.dart';
//import 'package:openapi_dart_common/openapi.dart'; //import 'package:openapi_dart_common/openapi.dart';
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
class Client { class Client {
ApiClient? _apiClient; ApiClient? _apiClient;

View File

@ -32,7 +32,7 @@ void main() async {
List<SectionRead> articleReadTest = List<SectionRead>.from(await DatabaseHelper.instance.getData(DatabaseTableType.articleRead)); List<SectionRead> articleReadTest = List<SectionRead>.from(await DatabaseHelper.instance.getData(DatabaseTableType.articleRead));
localContext.readSections = articleReadTest; localContext.readSections = articleReadTest;
} else { } else {
localContext = VisitAppContext(language: "FR", id: "UserId_Init", instanceId: "633ee379d9405f32f166f047", isAdmin: false, isAllLanguages: false); // 63514fd67ed8c735aaa4b8f2 MyInfoMate test instance -- 633ee379d9405f32f166f047 MyMuseum Fort Saint-Héribert - MyMuseum instance 63514fd67ed8c735aaa4b8f1 // MDLF instance 65ccc67265373befd15be511 localContext = VisitAppContext(language: "FR", id: "UserId_Init", instanceId: "63514fd67ed8c735aaa4b8f2", isAdmin: false, isAllLanguages: false); // 63514fd67ed8c735aaa4b8f2 MyInfoMate test instance -- 633ee379d9405f32f166f047 MyMuseum Fort Saint-Héribert - MyMuseum instance 63514fd67ed8c735aaa4b8f1 // MDLF instance 65ccc67265373befd15be511
DatabaseHelper.instance.insert(DatabaseTableType.main, localContext.toMap()); DatabaseHelper.instance.insert(DatabaseTableType.main, localContext.toMap());
List<SectionRead> articleReadTest = List<SectionRead>.from(await DatabaseHelper.instance.getData(DatabaseTableType.articleRead)); List<SectionRead> articleReadTest = List<SectionRead>.from(await DatabaseHelper.instance.getData(DatabaseTableType.articleRead));

View File

@ -1 +0,0 @@
unset

View File

@ -1,192 +0,0 @@
# manager_api
API Manager Service
This Dart package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: Version Alpha
- Build package: org.openapitools.codegen.languages.DartClientCodegen
## Requirements
Dart 2.12 or later
## Installation & Usage
### Github
If this Dart package is published to Github, add the following dependency to your pubspec.yaml
```
dependencies:
manager_api:
git: https://github.com/GIT_USER_ID/GIT_REPO_ID.git
```
### Local
To use the package in your local drive, add the following dependency to your pubspec.yaml
```
dependencies:
manager_api:
path: /path/to/manager_api
```
## Tests
TODO
## Getting Started
Please follow the [installation procedure](#installation--usage) and then run the following:
```dart
import 'package:manager_api/api.dart';
// TODO Configure OAuth2 access token for authorization: bearer
//defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN';
final api_instance = AuthenticationApi();
final grantType = grantType_example; // String |
final username = username_example; // String |
final password = password_example; // String |
final clientId = clientId_example; // String |
final clientSecret = clientSecret_example; // String |
try {
final result = api_instance.authenticationAuthenticateWithForm(grantType, username, password, clientId, clientSecret);
print(result);
} catch (e) {
print('Exception when calling AuthenticationApi->authenticationAuthenticateWithForm: $e\n');
}
```
## Documentation for API Endpoints
All URIs are relative to *https://api.myinfomate.be*
Class | Method | HTTP request | Description
------------ | ------------- | ------------- | -------------
*AuthenticationApi* | [**authenticationAuthenticateWithForm**](doc\/AuthenticationApi.md#authenticationauthenticatewithform) | **POST** /api/Authentication/Token |
*AuthenticationApi* | [**authenticationAuthenticateWithJson**](doc\/AuthenticationApi.md#authenticationauthenticatewithjson) | **POST** /api/Authentication/Authenticate |
*ConfigurationApi* | [**configurationCreate**](doc\/ConfigurationApi.md#configurationcreate) | **POST** /api/Configuration |
*ConfigurationApi* | [**configurationDelete**](doc\/ConfigurationApi.md#configurationdelete) | **DELETE** /api/Configuration/{id} |
*ConfigurationApi* | [**configurationExport**](doc\/ConfigurationApi.md#configurationexport) | **GET** /api/Configuration/{id}/export |
*ConfigurationApi* | [**configurationGet**](doc\/ConfigurationApi.md#configurationget) | **GET** /api/Configuration |
*ConfigurationApi* | [**configurationGetConfigurationsByPinCode**](doc\/ConfigurationApi.md#configurationgetconfigurationsbypincode) | **GET** /api/Configuration/byPin |
*ConfigurationApi* | [**configurationGetDetail**](doc\/ConfigurationApi.md#configurationgetdetail) | **GET** /api/Configuration/{id} |
*ConfigurationApi* | [**configurationImport**](doc\/ConfigurationApi.md#configurationimport) | **POST** /api/Configuration/import |
*ConfigurationApi* | [**configurationUpdate**](doc\/ConfigurationApi.md#configurationupdate) | **PUT** /api/Configuration |
*DeviceApi* | [**deviceCreate**](doc\/DeviceApi.md#devicecreate) | **POST** /api/Device |
*DeviceApi* | [**deviceDelete**](doc\/DeviceApi.md#devicedelete) | **DELETE** /api/Device/{id} |
*DeviceApi* | [**deviceGet**](doc\/DeviceApi.md#deviceget) | **GET** /api/Device |
*DeviceApi* | [**deviceGetDetail**](doc\/DeviceApi.md#devicegetdetail) | **GET** /api/Device/{id}/detail |
*DeviceApi* | [**deviceUpdate**](doc\/DeviceApi.md#deviceupdate) | **PUT** /api/Device |
*DeviceApi* | [**deviceUpdateMainInfos**](doc\/DeviceApi.md#deviceupdatemaininfos) | **PUT** /api/Device/mainInfos |
*InstanceApi* | [**instanceCreateInstance**](doc\/InstanceApi.md#instancecreateinstance) | **POST** /api/Instance |
*InstanceApi* | [**instanceDeleteInstance**](doc\/InstanceApi.md#instancedeleteinstance) | **DELETE** /api/Instance/{id} |
*InstanceApi* | [**instanceGet**](doc\/InstanceApi.md#instanceget) | **GET** /api/Instance |
*InstanceApi* | [**instanceGetDetail**](doc\/InstanceApi.md#instancegetdetail) | **GET** /api/Instance/{id} |
*InstanceApi* | [**instanceGetInstanceByPinCode**](doc\/InstanceApi.md#instancegetinstancebypincode) | **GET** /api/Instance/byPin |
*InstanceApi* | [**instanceUpdateinstance**](doc\/InstanceApi.md#instanceupdateinstance) | **PUT** /api/Instance |
*ResourceApi* | [**resourceCreate**](doc\/ResourceApi.md#resourcecreate) | **POST** /api/Resource |
*ResourceApi* | [**resourceDelete**](doc\/ResourceApi.md#resourcedelete) | **DELETE** /api/Resource/{id} |
*ResourceApi* | [**resourceGet**](doc\/ResourceApi.md#resourceget) | **GET** /api/Resource |
*ResourceApi* | [**resourceGetDetail**](doc\/ResourceApi.md#resourcegetdetail) | **GET** /api/Resource/{id}/detail |
*ResourceApi* | [**resourceShow**](doc\/ResourceApi.md#resourceshow) | **GET** /api/Resource/{id} |
*ResourceApi* | [**resourceUpdate**](doc\/ResourceApi.md#resourceupdate) | **PUT** /api/Resource |
*ResourceApi* | [**resourceUpload**](doc\/ResourceApi.md#resourceupload) | **POST** /api/Resource/upload |
*SectionApi* | [**sectionCreate**](doc\/SectionApi.md#sectioncreate) | **POST** /api/Section |
*SectionApi* | [**sectionDelete**](doc\/SectionApi.md#sectiondelete) | **DELETE** /api/Section/{id} |
*SectionApi* | [**sectionDeleteAllForConfiguration**](doc\/SectionApi.md#sectiondeleteallforconfiguration) | **DELETE** /api/Section/configuration/{id} |
*SectionApi* | [**sectionGet**](doc\/SectionApi.md#sectionget) | **GET** /api/Section |
*SectionApi* | [**sectionGetAgendaDTO**](doc\/SectionApi.md#sectiongetagendadto) | **GET** /api/Section/AgendaDTO |
*SectionApi* | [**sectionGetAllBeaconsForInstance**](doc\/SectionApi.md#sectiongetallbeaconsforinstance) | **GET** /api/Section/beacons/{instanceId} |
*SectionApi* | [**sectionGetAllSectionSubSections**](doc\/SectionApi.md#sectiongetallsectionsubsections) | **GET** /api/Section/{id}/subsections |
*SectionApi* | [**sectionGetArticleDTO**](doc\/SectionApi.md#sectiongetarticledto) | **GET** /api/Section/ArticleDTO |
*SectionApi* | [**sectionGetDetail**](doc\/SectionApi.md#sectiongetdetail) | **GET** /api/Section/{id} |
*SectionApi* | [**sectionGetFromConfiguration**](doc\/SectionApi.md#sectiongetfromconfiguration) | **GET** /api/Section/configuration/{id} |
*SectionApi* | [**sectionGetMapDTO**](doc\/SectionApi.md#sectiongetmapdto) | **GET** /api/Section/MapDTO |
*SectionApi* | [**sectionGetMenuDTO**](doc\/SectionApi.md#sectiongetmenudto) | **GET** /api/Section/MenuDTO |
*SectionApi* | [**sectionGetPdfDTO**](doc\/SectionApi.md#sectiongetpdfdto) | **GET** /api/Section/PdfDTO |
*SectionApi* | [**sectionGetPuzzleDTO**](doc\/SectionApi.md#sectiongetpuzzledto) | **GET** /api/Section/PuzzleDTO |
*SectionApi* | [**sectionGetQuizzDTO**](doc\/SectionApi.md#sectiongetquizzdto) | **GET** /api/Section/QuizzDTO |
*SectionApi* | [**sectionGetSliderDTO**](doc\/SectionApi.md#sectiongetsliderdto) | **GET** /api/Section/SliderDTO |
*SectionApi* | [**sectionGetVideoDTO**](doc\/SectionApi.md#sectiongetvideodto) | **GET** /api/Section/VideoDTO |
*SectionApi* | [**sectionGetWeatherDTO**](doc\/SectionApi.md#sectiongetweatherdto) | **GET** /api/Section/WeatherDTO |
*SectionApi* | [**sectionGetWebDTO**](doc\/SectionApi.md#sectiongetwebdto) | **GET** /api/Section/WebDTO |
*SectionApi* | [**sectionPlayerMessageDTO**](doc\/SectionApi.md#sectionplayermessagedto) | **GET** /api/Section/PlayerMessageDTO |
*SectionApi* | [**sectionUpdate**](doc\/SectionApi.md#sectionupdate) | **PUT** /api/Section |
*SectionApi* | [**sectionUpdateOrder**](doc\/SectionApi.md#sectionupdateorder) | **PUT** /api/Section/order |
*UserApi* | [**userCreateUser**](doc\/UserApi.md#usercreateuser) | **POST** /api/User |
*UserApi* | [**userDeleteUser**](doc\/UserApi.md#userdeleteuser) | **DELETE** /api/User/{id} |
*UserApi* | [**userGet**](doc\/UserApi.md#userget) | **GET** /api/User |
*UserApi* | [**userGetDetail**](doc\/UserApi.md#usergetdetail) | **GET** /api/User/{id} |
*UserApi* | [**userUpdateUser**](doc\/UserApi.md#userupdateuser) | **PUT** /api/User |
## Documentation For Models
- [AgendaDTO](doc\/AgendaDTO.md)
- [ArticleDTO](doc\/ArticleDTO.md)
- [CategorieDTO](doc\/CategorieDTO.md)
- [ConfigurationDTO](doc\/ConfigurationDTO.md)
- [ContentDTO](doc\/ContentDTO.md)
- [ContentGeoPoint](doc\/ContentGeoPoint.md)
- [DeviceDTO](doc\/DeviceDTO.md)
- [DeviceDetailDTO](doc\/DeviceDetailDTO.md)
- [DeviceDetailDTOAllOf](doc\/DeviceDetailDTOAllOf.md)
- [ExportConfigurationDTO](doc\/ExportConfigurationDTO.md)
- [ExportConfigurationDTOAllOf](doc\/ExportConfigurationDTOAllOf.md)
- [GeoPointDTO](doc\/GeoPointDTO.md)
- [GeoPointDTOCategorie](doc\/GeoPointDTOCategorie.md)
- [Instance](doc\/Instance.md)
- [InstanceDTO](doc\/InstanceDTO.md)
- [LevelDTO](doc\/LevelDTO.md)
- [LoginDTO](doc\/LoginDTO.md)
- [MapDTO](doc\/MapDTO.md)
- [MapDTOMapProvider](doc\/MapDTOMapProvider.md)
- [MapDTOMapType](doc\/MapDTOMapType.md)
- [MapDTOMapTypeMapbox](doc\/MapDTOMapTypeMapbox.md)
- [MapProvider](doc\/MapProvider.md)
- [MapTypeApp](doc\/MapTypeApp.md)
- [MapTypeMapBox](doc\/MapTypeMapBox.md)
- [MenuDTO](doc\/MenuDTO.md)
- [PDFFileDTO](doc\/PDFFileDTO.md)
- [PdfDTO](doc\/PdfDTO.md)
- [PlayerMessageDTO](doc\/PlayerMessageDTO.md)
- [PuzzleDTO](doc\/PuzzleDTO.md)
- [PuzzleDTOImage](doc\/PuzzleDTOImage.md)
- [QuestionDTO](doc\/QuestionDTO.md)
- [QuizzDTO](doc\/QuizzDTO.md)
- [QuizzDTOBadLevel](doc\/QuizzDTOBadLevel.md)
- [ResourceDTO](doc\/ResourceDTO.md)
- [ResourceType](doc\/ResourceType.md)
- [ResponseDTO](doc\/ResponseDTO.md)
- [SectionDTO](doc\/SectionDTO.md)
- [SectionType](doc\/SectionType.md)
- [SliderDTO](doc\/SliderDTO.md)
- [TokenDTO](doc\/TokenDTO.md)
- [TranslationAndResourceDTO](doc\/TranslationAndResourceDTO.md)
- [TranslationDTO](doc\/TranslationDTO.md)
- [User](doc\/User.md)
- [UserDetailDTO](doc\/UserDetailDTO.md)
- [VideoDTO](doc\/VideoDTO.md)
- [WeatherDTO](doc\/WeatherDTO.md)
- [WebDTO](doc\/WebDTO.md)
## Documentation For Authorization
Authentication schemes defined for the API:
### bearer
- **Type**: OAuth
- **Flow**: password
- **Authorization URL**: /authentication/Token
- **Scopes**:
- **Manager-api**: Manager WebAPI
## Author

View File

@ -1,19 +0,0 @@
# manager_api.model.ArticleDTO
## Load the model package
```dart
import 'package:manager_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**content** | [**List<TranslationDTO>**](TranslationDTO.md) | | [optional] [default to const []]
**isContentTop** | **bool** | | [optional]
**audioIds** | [**List<TranslationDTO>**](TranslationDTO.md) | | [optional] [default to const []]
**isReadAudioAuto** | **bool** | | [optional]
**contents** | [**List<ContentDTO>**](ContentDTO.md) | | [optional] [default to const []]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -1,24 +0,0 @@
# manager_api.model.MapDTO
## Load the model package
```dart
import 'package:manager_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**zoom** | **int** | | [optional]
**mapType** | [**MapDTOMapType**](MapDTOMapType.md) | | [optional]
**mapTypeMapbox** | [**MapDTOMapTypeMapbox**](MapDTOMapTypeMapbox.md) | | [optional]
**mapProvider** | [**MapDTOMapProvider**](MapDTOMapProvider.md) | | [optional]
**points** | [**List<GeoPointDTO>**](GeoPointDTO.md) | | [optional] [default to const []]
**iconResourceId** | **String** | | [optional]
**iconSource** | **String** | | [optional]
**categories** | [**List<CategorieDTO>**](CategorieDTO.md) | | [optional] [default to const []]
**latitude** | **String** | | [optional]
**longitude** | **String** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -1,19 +0,0 @@
# manager_api.model.PuzzleDTO
## Load the model package
```dart
import 'package:manager_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**messageDebut** | [**List<TranslationAndResourceDTO>**](TranslationAndResourceDTO.md) | | [optional] [default to const []]
**messageFin** | [**List<TranslationAndResourceDTO>**](TranslationAndResourceDTO.md) | | [optional] [default to const []]
**image** | [**PuzzleDTOImage**](PuzzleDTOImage.md) | | [optional]
**rows** | **int** | | [optional]
**cols** | **int** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -1,15 +0,0 @@
# manager_api.model.SliderDTO
## Load the model package
```dart
import 'package:manager_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**contents** | [**List<ContentDTO>**](ContentDTO.md) | | [optional] [default to const []]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -1,17 +0,0 @@
# manager_api.model.WeatherDTO
## Load the model package
```dart
import 'package:manager_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**city** | **String** | | [optional]
**updatedDate** | [**DateTime**](DateTime.md) | | [optional]
**result** | **String** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -1,123 +0,0 @@
//
// AUTO-GENERATED FILE, DO NOT MODIFY!
//
// @dart=2.12
// ignore_for_file: unused_element, unused_import
// ignore_for_file: always_put_required_named_parameters_first
// ignore_for_file: constant_identifier_names
// ignore_for_file: lines_longer_than_80_chars
part of openapi.api;
class AgendaDTO {
/// Returns a new [AgendaDTO] instance.
AgendaDTO({
this.resourceIds = const [],
this.mapProvider,
});
List<TranslationDTO>? resourceIds;
MapProvider? mapProvider;
@override
bool operator ==(Object other) => identical(this, other) || other is AgendaDTO &&
other.resourceIds == resourceIds &&
other.mapProvider == mapProvider;
@override
int get hashCode =>
// ignore: unnecessary_parenthesis
(resourceIds == null ? 0 : resourceIds!.hashCode) +
(mapProvider == null ? 0 : mapProvider!.hashCode);
@override
String toString() => 'AgendaDTO[resourceIds=$resourceIds, mapProvider=$mapProvider]';
Map<String, dynamic> toJson() {
final json = <String, dynamic>{};
if (this.resourceIds != null) {
json[r'resourceIds'] = this.resourceIds;
} else {
json[r'resourceIds'] = null;
}
if (this.mapProvider != null) {
json[r'mapProvider'] = this.mapProvider;
} else {
json[r'mapProvider'] = null;
}
return json;
}
/// Returns a new [AgendaDTO] instance and imports its values from
/// [value] if it's a [Map], null otherwise.
// ignore: prefer_constructors_over_static_methods
static AgendaDTO? fromJson(dynamic value) {
if (value is Map) {
final json = value.cast<String, dynamic>();
// Ensure that the map contains the required keys.
// Note 1: the values aren't checked for validity beyond being non-null.
// Note 2: this code is stripped in release mode!
assert(() {
requiredKeys.forEach((key) {
assert(json.containsKey(key), 'Required key "AgendaDTO[$key]" is missing from JSON.');
assert(json[key] != null, 'Required key "AgendaDTO[$key]" has a null value in JSON.');
});
return true;
}());
return AgendaDTO(
resourceIds: TranslationDTO.listFromJson(json[r'resourceIds']),
mapProvider: MapProvider.fromJson(json[r'mapProvider']),
);
}
return null;
}
static List<AgendaDTO> listFromJson(dynamic json, {bool growable = false,}) {
final result = <AgendaDTO>[];
if (json is List && json.isNotEmpty) {
for (final row in json) {
final value = AgendaDTO.fromJson(row);
if (value != null) {
result.add(value);
}
}
}
return result.toList(growable: growable);
}
static Map<String, AgendaDTO> mapFromJson(dynamic json) {
final map = <String, AgendaDTO>{};
if (json is Map && json.isNotEmpty) {
json = json.cast<String, dynamic>(); // ignore: parameter_assignments
for (final entry in json.entries) {
final value = AgendaDTO.fromJson(entry.value);
if (value != null) {
map[entry.key] = value;
}
}
}
return map;
}
// maps a json object with a list of AgendaDTO-objects as value to a dart map
static Map<String, List<AgendaDTO>> mapListFromJson(dynamic json, {bool growable = false,}) {
final map = <String, List<AgendaDTO>>{};
if (json is Map && json.isNotEmpty) {
// ignore: parameter_assignments
json = json.cast<String, dynamic>();
for (final entry in json.entries) {
map[entry.key] = AgendaDTO.listFromJson(entry.value, growable: growable,);
}
}
return map;
}
/// The list of required keys that must be present in a JSON.
static const requiredKeys = <String>{
};
}

View File

@ -1,168 +0,0 @@
//
// AUTO-GENERATED FILE, DO NOT MODIFY!
//
// @dart=2.12
// ignore_for_file: unused_element, unused_import
// ignore_for_file: always_put_required_named_parameters_first
// ignore_for_file: constant_identifier_names
// ignore_for_file: lines_longer_than_80_chars
part of openapi.api;
class ArticleDTO {
/// Returns a new [ArticleDTO] instance.
ArticleDTO({
this.content = const [],
this.isContentTop,
this.audioIds = const [],
this.isReadAudioAuto,
this.contents = const [],
});
List<TranslationDTO>? content;
///
/// Please note: This property should have been non-nullable! Since the specification file
/// does not include a default value (using the "default:" property), however, the generated
/// source code must fall back to having a nullable type.
/// Consider adding a "default:" property in the specification file to hide this note.
///
bool? isContentTop;
List<TranslationDTO>? audioIds;
///
/// Please note: This property should have been non-nullable! Since the specification file
/// does not include a default value (using the "default:" property), however, the generated
/// source code must fall back to having a nullable type.
/// Consider adding a "default:" property in the specification file to hide this note.
///
bool? isReadAudioAuto;
List<ContentDTO>? contents;
@override
bool operator ==(Object other) => identical(this, other) || other is ArticleDTO &&
other.content == content &&
other.isContentTop == isContentTop &&
other.audioIds == audioIds &&
other.isReadAudioAuto == isReadAudioAuto &&
other.contents == contents;
@override
int get hashCode =>
// ignore: unnecessary_parenthesis
(content == null ? 0 : content!.hashCode) +
(isContentTop == null ? 0 : isContentTop!.hashCode) +
(audioIds == null ? 0 : audioIds!.hashCode) +
(isReadAudioAuto == null ? 0 : isReadAudioAuto!.hashCode) +
(contents == null ? 0 : contents!.hashCode);
@override
String toString() => 'ArticleDTO[content=$content, isContentTop=$isContentTop, audioIds=$audioIds, isReadAudioAuto=$isReadAudioAuto, contents=$contents]';
Map<String, dynamic> toJson() {
final json = <String, dynamic>{};
if (this.content != null) {
json[r'content'] = this.content;
} else {
json[r'content'] = null;
}
if (this.isContentTop != null) {
json[r'isContentTop'] = this.isContentTop;
} else {
json[r'isContentTop'] = null;
}
if (this.audioIds != null) {
json[r'audioIds'] = this.audioIds;
} else {
json[r'audioIds'] = null;
}
if (this.isReadAudioAuto != null) {
json[r'isReadAudioAuto'] = this.isReadAudioAuto;
} else {
json[r'isReadAudioAuto'] = null;
}
if (this.contents != null) {
json[r'contents'] = this.contents;
} else {
json[r'contents'] = null;
}
return json;
}
/// Returns a new [ArticleDTO] instance and imports its values from
/// [value] if it's a [Map], null otherwise.
// ignore: prefer_constructors_over_static_methods
static ArticleDTO? fromJson(dynamic value) {
if (value is Map) {
final json = value.cast<String, dynamic>();
// Ensure that the map contains the required keys.
// Note 1: the values aren't checked for validity beyond being non-null.
// Note 2: this code is stripped in release mode!
assert(() {
requiredKeys.forEach((key) {
assert(json.containsKey(key), 'Required key "ArticleDTO[$key]" is missing from JSON.');
assert(json[key] != null, 'Required key "ArticleDTO[$key]" has a null value in JSON.');
});
return true;
}());
return ArticleDTO(
content: TranslationDTO.listFromJson(json[r'content']),
isContentTop: mapValueOfType<bool>(json, r'isContentTop'),
audioIds: TranslationDTO.listFromJson(json[r'audioIds']),
isReadAudioAuto: mapValueOfType<bool>(json, r'isReadAudioAuto'),
contents: ContentDTO.listFromJson(json[r'contents']),
);
}
return null;
}
static List<ArticleDTO> listFromJson(dynamic json, {bool growable = false,}) {
final result = <ArticleDTO>[];
if (json is List && json.isNotEmpty) {
for (final row in json) {
final value = ArticleDTO.fromJson(row);
if (value != null) {
result.add(value);
}
}
}
return result.toList(growable: growable);
}
static Map<String, ArticleDTO> mapFromJson(dynamic json) {
final map = <String, ArticleDTO>{};
if (json is Map && json.isNotEmpty) {
json = json.cast<String, dynamic>(); // ignore: parameter_assignments
for (final entry in json.entries) {
final value = ArticleDTO.fromJson(entry.value);
if (value != null) {
map[entry.key] = value;
}
}
}
return map;
}
// maps a json object with a list of ArticleDTO-objects as value to a dart map
static Map<String, List<ArticleDTO>> mapListFromJson(dynamic json, {bool growable = false,}) {
final map = <String, List<ArticleDTO>>{};
if (json is Map && json.isNotEmpty) {
// ignore: parameter_assignments
json = json.cast<String, dynamic>();
for (final entry in json.entries) {
map[entry.key] = ArticleDTO.listFromJson(entry.value, growable: growable,);
}
}
return map;
}
/// The list of required keys that must be present in a JSON.
static const requiredKeys = <String>{
};
}

View File

@ -1,217 +0,0 @@
//
// AUTO-GENERATED FILE, DO NOT MODIFY!
//
// @dart=2.12
// ignore_for_file: unused_element, unused_import
// ignore_for_file: always_put_required_named_parameters_first
// ignore_for_file: constant_identifier_names
// ignore_for_file: lines_longer_than_80_chars
part of openapi.api;
class MapDTO {
/// Returns a new [MapDTO] instance.
MapDTO({
this.zoom,
this.mapType,
this.mapTypeMapbox,
this.mapProvider,
this.points = const [],
this.iconResourceId,
this.iconSource,
this.categories = const [],
this.latitude,
this.longitude,
});
///
/// Please note: This property should have been non-nullable! Since the specification file
/// does not include a default value (using the "default:" property), however, the generated
/// source code must fall back to having a nullable type.
/// Consider adding a "default:" property in the specification file to hide this note.
///
int? zoom;
MapTypeApp? mapType;
MapTypeMapBox? mapTypeMapbox;
MapProvider? mapProvider;
List<GeoPointDTO>? points;
String? iconResourceId;
String? iconSource;
List<CategorieDTO>? categories;
String? latitude;
String? longitude;
@override
bool operator ==(Object other) => identical(this, other) || other is MapDTO &&
other.zoom == zoom &&
other.mapType == mapType &&
other.mapTypeMapbox == mapTypeMapbox &&
other.mapProvider == mapProvider &&
other.points == points &&
other.iconResourceId == iconResourceId &&
other.iconSource == iconSource &&
other.categories == categories &&
other.latitude == latitude &&
other.longitude == longitude;
@override
int get hashCode =>
// ignore: unnecessary_parenthesis
(zoom == null ? 0 : zoom!.hashCode) +
(mapType == null ? 0 : mapType!.hashCode) +
(mapTypeMapbox == null ? 0 : mapTypeMapbox!.hashCode) +
(mapProvider == null ? 0 : mapProvider!.hashCode) +
(points == null ? 0 : points!.hashCode) +
(iconResourceId == null ? 0 : iconResourceId!.hashCode) +
(iconSource == null ? 0 : iconSource!.hashCode) +
(categories == null ? 0 : categories!.hashCode) +
(latitude == null ? 0 : latitude!.hashCode) +
(longitude == null ? 0 : longitude!.hashCode);
@override
String toString() => 'MapDTO[zoom=$zoom, mapType=$mapType, mapTypeMapbox=$mapTypeMapbox, mapProvider=$mapProvider, points=$points, iconResourceId=$iconResourceId, iconSource=$iconSource, categories=$categories, latitude=$latitude, longitude=$longitude]';
Map<String, dynamic> toJson() {
final json = <String, dynamic>{};
if (this.zoom != null) {
json[r'zoom'] = this.zoom;
} else {
json[r'zoom'] = null;
}
if (this.mapType != null) {
json[r'mapType'] = this.mapType;
} else {
json[r'mapType'] = null;
}
if (this.mapTypeMapbox != null) {
json[r'mapTypeMapbox'] = this.mapTypeMapbox;
} else {
json[r'mapTypeMapbox'] = null;
}
if (this.mapProvider != null) {
json[r'mapProvider'] = this.mapProvider;
} else {
json[r'mapProvider'] = null;
}
if (this.points != null) {
json[r'points'] = this.points;
} else {
json[r'points'] = null;
}
if (this.iconResourceId != null) {
json[r'iconResourceId'] = this.iconResourceId;
} else {
json[r'iconResourceId'] = null;
}
if (this.iconSource != null) {
json[r'iconSource'] = this.iconSource;
} else {
json[r'iconSource'] = null;
}
if (this.categories != null) {
json[r'categories'] = this.categories;
} else {
json[r'categories'] = null;
}
if (this.latitude != null) {
json[r'latitude'] = this.latitude;
} else {
json[r'latitude'] = null;
}
if (this.longitude != null) {
json[r'longitude'] = this.longitude;
} else {
json[r'longitude'] = null;
}
return json;
}
/// Returns a new [MapDTO] instance and imports its values from
/// [value] if it's a [Map], null otherwise.
// ignore: prefer_constructors_over_static_methods
static MapDTO? fromJson(dynamic value) {
if (value is Map) {
final json = value.cast<String, dynamic>();
// Ensure that the map contains the required keys.
// Note 1: the values aren't checked for validity beyond being non-null.
// Note 2: this code is stripped in release mode!
assert(() {
requiredKeys.forEach((key) {
assert(json.containsKey(key), 'Required key "MapDTO[$key]" is missing from JSON.');
assert(json[key] != null, 'Required key "MapDTO[$key]" has a null value in JSON.');
});
return true;
}());
return MapDTO(
zoom: mapValueOfType<int>(json, r'zoom'),
mapType: MapTypeApp.fromJson(json[r'mapType']),
mapTypeMapbox: MapTypeMapBox.fromJson(json[r'mapTypeMapbox']),
mapProvider: MapProvider.fromJson(json[r'mapProvider']),
points: GeoPointDTO.listFromJson(json[r'points']),
iconResourceId: mapValueOfType<String>(json, r'iconResourceId'),
iconSource: mapValueOfType<String>(json, r'iconSource'),
categories: CategorieDTO.listFromJson(json[r'categories']),
latitude: mapValueOfType<String>(json, r'latitude'),
longitude: mapValueOfType<String>(json, r'longitude'),
);
}
return null;
}
static List<MapDTO> listFromJson(dynamic json, {bool growable = false,}) {
final result = <MapDTO>[];
if (json is List && json.isNotEmpty) {
for (final row in json) {
final value = MapDTO.fromJson(row);
if (value != null) {
result.add(value);
}
}
}
return result.toList(growable: growable);
}
static Map<String, MapDTO> mapFromJson(dynamic json) {
final map = <String, MapDTO>{};
if (json is Map && json.isNotEmpty) {
json = json.cast<String, dynamic>(); // ignore: parameter_assignments
for (final entry in json.entries) {
final value = MapDTO.fromJson(entry.value);
if (value != null) {
map[entry.key] = value;
}
}
}
return map;
}
// maps a json object with a list of MapDTO-objects as value to a dart map
static Map<String, List<MapDTO>> mapListFromJson(dynamic json, {bool growable = false,}) {
final map = <String, List<MapDTO>>{};
if (json is Map && json.isNotEmpty) {
// ignore: parameter_assignments
json = json.cast<String, dynamic>();
for (final entry in json.entries) {
map[entry.key] = MapDTO.listFromJson(entry.value, growable: growable,);
}
}
return map;
}
/// The list of required keys that must be present in a JSON.
static const requiredKeys = <String>{
};
}

View File

@ -1,168 +0,0 @@
//
// AUTO-GENERATED FILE, DO NOT MODIFY!
//
// @dart=2.12
// ignore_for_file: unused_element, unused_import
// ignore_for_file: always_put_required_named_parameters_first
// ignore_for_file: constant_identifier_names
// ignore_for_file: lines_longer_than_80_chars
part of openapi.api;
class PuzzleDTO {
/// Returns a new [PuzzleDTO] instance.
PuzzleDTO({
this.messageDebut = const [],
this.messageFin = const [],
this.image,
this.rows,
this.cols,
});
List<TranslationAndResourceDTO>? messageDebut;
List<TranslationAndResourceDTO>? messageFin;
PuzzleDTOImage? image;
///
/// Please note: This property should have been non-nullable! Since the specification file
/// does not include a default value (using the "default:" property), however, the generated
/// source code must fall back to having a nullable type.
/// Consider adding a "default:" property in the specification file to hide this note.
///
int? rows;
///
/// Please note: This property should have been non-nullable! Since the specification file
/// does not include a default value (using the "default:" property), however, the generated
/// source code must fall back to having a nullable type.
/// Consider adding a "default:" property in the specification file to hide this note.
///
int? cols;
@override
bool operator ==(Object other) => identical(this, other) || other is PuzzleDTO &&
other.messageDebut == messageDebut &&
other.messageFin == messageFin &&
other.image == image &&
other.rows == rows &&
other.cols == cols;
@override
int get hashCode =>
// ignore: unnecessary_parenthesis
(messageDebut == null ? 0 : messageDebut!.hashCode) +
(messageFin == null ? 0 : messageFin!.hashCode) +
(image == null ? 0 : image!.hashCode) +
(rows == null ? 0 : rows!.hashCode) +
(cols == null ? 0 : cols!.hashCode);
@override
String toString() => 'PuzzleDTO[messageDebut=$messageDebut, messageFin=$messageFin, image=$image, rows=$rows, cols=$cols]';
Map<String, dynamic> toJson() {
final json = <String, dynamic>{};
if (this.messageDebut != null) {
json[r'messageDebut'] = this.messageDebut;
} else {
json[r'messageDebut'] = null;
}
if (this.messageFin != null) {
json[r'messageFin'] = this.messageFin;
} else {
json[r'messageFin'] = null;
}
if (this.image != null) {
json[r'image'] = this.image;
} else {
json[r'image'] = null;
}
if (this.rows != null) {
json[r'rows'] = this.rows;
} else {
json[r'rows'] = null;
}
if (this.cols != null) {
json[r'cols'] = this.cols;
} else {
json[r'cols'] = null;
}
return json;
}
/// Returns a new [PuzzleDTO] instance and imports its values from
/// [value] if it's a [Map], null otherwise.
// ignore: prefer_constructors_over_static_methods
static PuzzleDTO? fromJson(dynamic value) {
if (value is Map) {
final json = value.cast<String, dynamic>();
// Ensure that the map contains the required keys.
// Note 1: the values aren't checked for validity beyond being non-null.
// Note 2: this code is stripped in release mode!
assert(() {
requiredKeys.forEach((key) {
assert(json.containsKey(key), 'Required key "PuzzleDTO[$key]" is missing from JSON.');
assert(json[key] != null, 'Required key "PuzzleDTO[$key]" has a null value in JSON.');
});
return true;
}());
return PuzzleDTO(
messageDebut: TranslationAndResourceDTO.listFromJson(json[r'messageDebut']),
messageFin: TranslationAndResourceDTO.listFromJson(json[r'messageFin']),
image: PuzzleDTOImage.fromJson(json[r'image']),
rows: mapValueOfType<int>(json, r'rows'),
cols: mapValueOfType<int>(json, r'cols'),
);
}
return null;
}
static List<PuzzleDTO> listFromJson(dynamic json, {bool growable = false,}) {
final result = <PuzzleDTO>[];
if (json is List && json.isNotEmpty) {
for (final row in json) {
final value = PuzzleDTO.fromJson(row);
if (value != null) {
result.add(value);
}
}
}
return result.toList(growable: growable);
}
static Map<String, PuzzleDTO> mapFromJson(dynamic json) {
final map = <String, PuzzleDTO>{};
if (json is Map && json.isNotEmpty) {
json = json.cast<String, dynamic>(); // ignore: parameter_assignments
for (final entry in json.entries) {
final value = PuzzleDTO.fromJson(entry.value);
if (value != null) {
map[entry.key] = value;
}
}
}
return map;
}
// maps a json object with a list of PuzzleDTO-objects as value to a dart map
static Map<String, List<PuzzleDTO>> mapListFromJson(dynamic json, {bool growable = false,}) {
final map = <String, List<PuzzleDTO>>{};
if (json is Map && json.isNotEmpty) {
// ignore: parameter_assignments
json = json.cast<String, dynamic>();
for (final entry in json.entries) {
map[entry.key] = PuzzleDTO.listFromJson(entry.value, growable: growable,);
}
}
return map;
}
/// The list of required keys that must be present in a JSON.
static const requiredKeys = <String>{
};
}

View File

@ -1,134 +0,0 @@
//
// AUTO-GENERATED FILE, DO NOT MODIFY!
//
// @dart=2.12
// ignore_for_file: unused_element, unused_import
// ignore_for_file: always_put_required_named_parameters_first
// ignore_for_file: constant_identifier_names
// ignore_for_file: lines_longer_than_80_chars
part of openapi.api;
class WeatherDTO {
/// Returns a new [WeatherDTO] instance.
WeatherDTO({
this.city,
this.updatedDate,
this.result,
});
String? city;
DateTime? updatedDate;
String? result;
@override
bool operator ==(Object other) => identical(this, other) || other is WeatherDTO &&
other.city == city &&
other.updatedDate == updatedDate &&
other.result == result;
@override
int get hashCode =>
// ignore: unnecessary_parenthesis
(city == null ? 0 : city!.hashCode) +
(updatedDate == null ? 0 : updatedDate!.hashCode) +
(result == null ? 0 : result!.hashCode);
@override
String toString() => 'WeatherDTO[city=$city, updatedDate=$updatedDate, result=$result]';
Map<String, dynamic> toJson() {
final json = <String, dynamic>{};
if (this.city != null) {
json[r'city'] = this.city;
} else {
json[r'city'] = null;
}
if (this.updatedDate != null) {
json[r'updatedDate'] = this.updatedDate!.toUtc().toIso8601String();
} else {
json[r'updatedDate'] = null;
}
if (this.result != null) {
json[r'result'] = this.result;
} else {
json[r'result'] = null;
}
return json;
}
/// Returns a new [WeatherDTO] instance and imports its values from
/// [value] if it's a [Map], null otherwise.
// ignore: prefer_constructors_over_static_methods
static WeatherDTO? fromJson(dynamic value) {
if (value is Map) {
final json = value.cast<String, dynamic>();
// Ensure that the map contains the required keys.
// Note 1: the values aren't checked for validity beyond being non-null.
// Note 2: this code is stripped in release mode!
assert(() {
requiredKeys.forEach((key) {
assert(json.containsKey(key), 'Required key "WeatherDTO[$key]" is missing from JSON.');
assert(json[key] != null, 'Required key "WeatherDTO[$key]" has a null value in JSON.');
});
return true;
}());
return WeatherDTO(
city: mapValueOfType<String>(json, r'city'),
updatedDate: mapDateTime(json, r'updatedDate', ''),
result: mapValueOfType<String>(json, r'result'),
);
}
return null;
}
static List<WeatherDTO> listFromJson(dynamic json, {bool growable = false,}) {
final result = <WeatherDTO>[];
if (json is List && json.isNotEmpty) {
for (final row in json) {
final value = WeatherDTO.fromJson(row);
if (value != null) {
result.add(value);
}
}
}
return result.toList(growable: growable);
}
static Map<String, WeatherDTO> mapFromJson(dynamic json) {
final map = <String, WeatherDTO>{};
if (json is Map && json.isNotEmpty) {
json = json.cast<String, dynamic>(); // ignore: parameter_assignments
for (final entry in json.entries) {
final value = WeatherDTO.fromJson(entry.value);
if (value != null) {
map[entry.key] = value;
}
}
}
return map;
}
// maps a json object with a list of WeatherDTO-objects as value to a dart map
static Map<String, List<WeatherDTO>> mapListFromJson(dynamic json, {bool growable = false,}) {
final map = <String, List<WeatherDTO>>{};
if (json is Map && json.isNotEmpty) {
// ignore: parameter_assignments
json = json.cast<String, dynamic>();
for (final entry in json.entries) {
map[entry.key] = WeatherDTO.listFromJson(entry.value, growable: growable,);
}
}
return map;
}
/// The list of required keys that must be present in a JSON.
static const requiredKeys = <String>{
};
}

View File

@ -1,413 +0,0 @@
# Generated by pub
# See https://dart.dev/tools/pub/glossary#lockfile
packages:
_fe_analyzer_shared:
dependency: transitive
description:
name: _fe_analyzer_shared
sha256: "4826f97faae3af9761f26c52e56b2aa5ffd18d2c1721d984ad85137721c25f43"
url: "https://pub.dev"
source: hosted
version: "31.0.0"
analyzer:
dependency: transitive
description:
name: analyzer
sha256: "7337610c3f9cd13e6b7c6bb0f410644091cf63c9a1436e73352a70f3286abb03"
url: "https://pub.dev"
source: hosted
version: "2.8.0"
args:
dependency: transitive
description:
name: args
sha256: "139d809800a412ebb26a3892da228b2d0ba36f0ef5d9a82166e5e52ec8d61611"
url: "https://pub.dev"
source: hosted
version: "2.3.2"
async:
dependency: transitive
description:
name: async
sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0
url: "https://pub.dev"
source: hosted
version: "2.10.0"
boolean_selector:
dependency: transitive
description:
name: boolean_selector
sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
url: "https://pub.dev"
source: hosted
version: "2.1.1"
cli_util:
dependency: transitive
description:
name: cli_util
sha256: "66f86e916d285c1a93d3b79587d94bd71984a66aac4ff74e524cfa7877f1395c"
url: "https://pub.dev"
source: hosted
version: "0.3.5"
clock:
dependency: transitive
description:
name: clock
sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
url: "https://pub.dev"
source: hosted
version: "1.1.1"
collection:
dependency: transitive
description:
name: collection
sha256: cfc915e6923fe5ce6e153b0723c753045de46de1b4d63771530504004a45fae0
url: "https://pub.dev"
source: hosted
version: "1.17.0"
convert:
dependency: transitive
description:
name: convert
sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592"
url: "https://pub.dev"
source: hosted
version: "3.1.1"
coverage:
dependency: transitive
description:
name: coverage
sha256: ad538fa2e8f6b828d54c04a438af816ce814de404690136d3b9dfb3a436cd01c
url: "https://pub.dev"
source: hosted
version: "1.0.3"
crypto:
dependency: transitive
description:
name: crypto
sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67
url: "https://pub.dev"
source: hosted
version: "3.0.2"
file:
dependency: transitive
description:
name: file
sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d"
url: "https://pub.dev"
source: hosted
version: "6.1.4"
frontend_server_client:
dependency: transitive
description:
name: frontend_server_client
sha256: "4f4a162323c86ffc1245765cfe138872b8f069deb42f7dbb36115fa27f31469b"
url: "https://pub.dev"
source: hosted
version: "2.1.3"
glob:
dependency: transitive
description:
name: glob
sha256: "4515b5b6ddb505ebdd242a5f2cc5d22d3d6a80013789debfbda7777f47ea308c"
url: "https://pub.dev"
source: hosted
version: "2.1.1"
http:
dependency: "direct main"
description:
name: http
sha256: "761a297c042deedc1ffbb156d6e2af13886bb305c2a343a4d972504cd67dd938"
url: "https://pub.dev"
source: hosted
version: "1.2.1"
http_multi_server:
dependency: transitive
description:
name: http_multi_server
sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b"
url: "https://pub.dev"
source: hosted
version: "3.2.1"
http_parser:
dependency: transitive
description:
name: http_parser
sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b"
url: "https://pub.dev"
source: hosted
version: "4.0.2"
intl:
dependency: "direct main"
description:
name: intl
sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf
url: "https://pub.dev"
source: hosted
version: "0.19.0"
io:
dependency: transitive
description:
name: io
sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e"
url: "https://pub.dev"
source: hosted
version: "1.0.4"
js:
dependency: transitive
description:
name: js
sha256: "323b7c70073cccf6b9b8d8b334be418a3293cfb612a560dc2737160a37bf61bd"
url: "https://pub.dev"
source: hosted
version: "0.6.6"
logging:
dependency: transitive
description:
name: logging
sha256: c0bbfe94d46aedf9b8b3e695cf3bd48c8e14b35e3b2c639e0aa7755d589ba946
url: "https://pub.dev"
source: hosted
version: "1.1.0"
matcher:
dependency: transitive
description:
name: matcher
sha256: "2e2c34e631f93410daa3ee3410250eadc77ac6befc02a040eda8a123f34e6f5a"
url: "https://pub.dev"
source: hosted
version: "0.12.11"
meta:
dependency: "direct main"
description:
name: meta
sha256: "6c268b42ed578a53088d834796959e4a1814b5e9e164f147f580a386e5decf42"
url: "https://pub.dev"
source: hosted
version: "1.8.0"
mime:
dependency: transitive
description:
name: mime
sha256: e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e
url: "https://pub.dev"
source: hosted
version: "1.0.4"
node_preamble:
dependency: transitive
description:
name: node_preamble
sha256: "8ebdbaa3b96d5285d068f80772390d27c21e1fa10fb2df6627b1b9415043608d"
url: "https://pub.dev"
source: hosted
version: "2.0.1"
package_config:
dependency: transitive
description:
name: package_config
sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd"
url: "https://pub.dev"
source: hosted
version: "2.1.0"
path:
dependency: transitive
description:
name: path
sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917"
url: "https://pub.dev"
source: hosted
version: "1.8.3"
pedantic:
dependency: transitive
description:
name: pedantic
sha256: "67fc27ed9639506c856c840ccce7594d0bdcd91bc8d53d6e52359449a1d50602"
url: "https://pub.dev"
source: hosted
version: "1.11.1"
pool:
dependency: transitive
description:
name: pool
sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a"
url: "https://pub.dev"
source: hosted
version: "1.5.1"
pub_semver:
dependency: transitive
description:
name: pub_semver
sha256: "307de764d305289ff24ad257ad5c5793ce56d04947599ad68b3baa124105fc17"
url: "https://pub.dev"
source: hosted
version: "2.1.3"
shelf:
dependency: transitive
description:
name: shelf
sha256: c24a96135a2ccd62c64b69315a14adc5c3419df63b4d7c05832a346fdb73682c
url: "https://pub.dev"
source: hosted
version: "1.4.0"
shelf_packages_handler:
dependency: transitive
description:
name: shelf_packages_handler
sha256: aef74dc9195746a384843102142ab65b6a4735bb3beea791e63527b88cc83306
url: "https://pub.dev"
source: hosted
version: "3.0.1"
shelf_static:
dependency: transitive
description:
name: shelf_static
sha256: e792b76b96a36d4a41b819da593aff4bdd413576b3ba6150df5d8d9996d2e74c
url: "https://pub.dev"
source: hosted
version: "1.1.1"
shelf_web_socket:
dependency: transitive
description:
name: shelf_web_socket
sha256: a988c0e8d8ffbdb8a28aa7ec8e449c260f3deb808781fe1284d22c5bba7156e8
url: "https://pub.dev"
source: hosted
version: "1.0.3"
source_map_stack_trace:
dependency: transitive
description:
name: source_map_stack_trace
sha256: "84cf769ad83aa6bb61e0aa5a18e53aea683395f196a6f39c4c881fb90ed4f7ae"
url: "https://pub.dev"
source: hosted
version: "2.1.1"
source_maps:
dependency: transitive
description:
name: source_maps
sha256: "490098075234dcedb83c5d949b4c93dad5e6b7702748de000be2b57b8e6b2427"
url: "https://pub.dev"
source: hosted
version: "0.10.11"
source_span:
dependency: transitive
description:
name: source_span
sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250
url: "https://pub.dev"
source: hosted
version: "1.9.1"
stack_trace:
dependency: transitive
description:
name: stack_trace
sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
url: "https://pub.dev"
source: hosted
version: "1.11.0"
stream_channel:
dependency: transitive
description:
name: stream_channel
sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
url: "https://pub.dev"
source: hosted
version: "2.1.1"
string_scanner:
dependency: transitive
description:
name: string_scanner
sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
url: "https://pub.dev"
source: hosted
version: "1.2.0"
term_glyph:
dependency: transitive
description:
name: term_glyph
sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
url: "https://pub.dev"
source: hosted
version: "1.2.1"
test:
dependency: "direct dev"
description:
name: test
sha256: d8df85e0659006d6dd09dd5d1d4bf81848d34fbe5b1fdd2b2a90e690aaa8195e
url: "https://pub.dev"
source: hosted
version: "1.17.12"
test_api:
dependency: transitive
description:
name: test_api
sha256: "3c3c3eb64242eec8aeb7a7e530cd541737a84bb01fc08b363b429aaa4a91060d"
url: "https://pub.dev"
source: hosted
version: "0.4.3"
test_core:
dependency: transitive
description:
name: test_core
sha256: f269e59fdd3abd14d6d92d3da9a03f69e931e9dd9140d6f06f94fc2204584741
url: "https://pub.dev"
source: hosted
version: "0.4.2"
typed_data:
dependency: transitive
description:
name: typed_data
sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5"
url: "https://pub.dev"
source: hosted
version: "1.3.1"
vm_service:
dependency: transitive
description:
name: vm_service
sha256: "35ef1bbae978d7158e09c98dcdfe8673b58a30eb53e82833cc027e0aab2d5213"
url: "https://pub.dev"
source: hosted
version: "7.5.0"
watcher:
dependency: transitive
description:
name: watcher
sha256: "6a7f46926b01ce81bfc339da6a7f20afbe7733eff9846f6d6a5466aa4c6667c0"
url: "https://pub.dev"
source: hosted
version: "1.0.2"
web:
dependency: transitive
description:
name: web
sha256: "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27"
url: "https://pub.dev"
source: hosted
version: "0.5.1"
web_socket_channel:
dependency: transitive
description:
name: web_socket_channel
sha256: ca49c0bc209c687b887f30527fb6a9d80040b072cc2990f34b9bec3e7663101b
url: "https://pub.dev"
source: hosted
version: "2.3.0"
webkit_inspection_protocol:
dependency: transitive
description:
name: webkit_inspection_protocol
sha256: "67d3a8b6c79e1987d19d848b0892e582dbb0c66c57cc1fef58a177dd2aa2823d"
url: "https://pub.dev"
source: hosted
version: "1.2.0"
yaml:
dependency: transitive
description:
name: yaml
sha256: "23812a9b125b48d4007117254bca50abb6c712352927eece9e155207b1db2370"
url: "https://pub.dev"
source: hosted
version: "3.1.1"
sdks:
dart: ">=3.3.0 <4.0.0"

View File

@ -1,16 +0,0 @@
#
# AUTO-GENERATED FILE, DO NOT MODIFY!
#
name: 'manager_api'
version: '1.0.0'
description: 'OpenAPI API client'
homepage: 'homepage'
environment:
sdk: ">=3.1.0 <4.0.0"
dependencies:
http: '^1.1.0'
intl: '^0.19.0'
meta: '^1.1.8'
dev_dependencies:
test: '>=1.16.0 <1.18.0'

View File

@ -3,7 +3,9 @@
.dart_tool/ .dart_tool/
.packages .packages
build/ build/
pubspec.lock # Except for application packages
# Except for application packages
pubspec.lock
doc/api/ doc/api/

View File

@ -3,48 +3,56 @@
README.md README.md
analysis_options.yaml analysis_options.yaml
doc/AgendaDTO.md doc/AgendaDTO.md
doc/AgendaDTOAllOfAgendaMapProvider.md
doc/ArticleDTO.md doc/ArticleDTO.md
doc/AuthenticationApi.md doc/AuthenticationApi.md
doc/CategorieDTO.md doc/CategorieDTO.md
doc/ConfigurationApi.md doc/ConfigurationApi.md
doc/ConfigurationDTO.md doc/ConfigurationDTO.md
doc/ContentDTO.md doc/ContentDTO.md
doc/ContentGeoPoint.md doc/ContentDTOResource.md
doc/DeviceApi.md doc/DeviceApi.md
doc/DeviceDTO.md doc/DeviceDTO.md
doc/DeviceDetailDTO.md doc/DeviceDetailDTO.md
doc/DeviceDetailDTOAllOf.md
doc/ExportConfigurationDTO.md doc/ExportConfigurationDTO.md
doc/ExportConfigurationDTOAllOf.md doc/GeoPoint.md
doc/GeoPointDTO.md doc/GeoPointDTO.md
doc/GeoPointDTOCategorie.md doc/GeoPointSectionMap.md
doc/Instance.md doc/Instance.md
doc/InstanceApi.md doc/InstanceApi.md
doc/InstanceDTO.md doc/InstanceDTO.md
doc/LevelDTO.md
doc/LoginDTO.md doc/LoginDTO.md
doc/MapDTO.md doc/MapDTO.md
doc/MapDTOMapProvider.md doc/MapDTOAllOfMapProvider.md
doc/MapDTOMapType.md doc/MapDTOAllOfMapType.md
doc/MapDTOMapTypeMapbox.md doc/MapDTOAllOfMapTypeMapbox.md
doc/MapProvider.md doc/MapProvider.md
doc/MapTypeApp.md doc/MapTypeApp.md
doc/MapTypeMapBox.md doc/MapTypeMapBox.md
doc/MenuDTO.md doc/MenuDTO.md
doc/PDFFileDTO.md doc/OrderedTranslationAndResourceDTO.md
doc/PdfDTO.md doc/PdfDTO.md
doc/PlayerMessageDTO.md doc/PlayerMessageDTO.md
doc/PuzzleDTO.md doc/PuzzleDTO.md
doc/PuzzleDTOImage.md doc/PuzzleDTOAllOfPuzzleImage.md
doc/QuestionDTO.md doc/QuestionDTO.md
doc/QuizzDTO.md doc/QuestionDTOImageBackgroundResourceType.md
doc/QuizzDTOBadLevel.md doc/QuizDTO.md
doc/Resource.md
doc/ResourceApi.md doc/ResourceApi.md
doc/ResourceDTO.md doc/ResourceDTO.md
doc/ResourceType.md doc/ResourceType.md
doc/ResponseDTO.md doc/ResponseDTO.md
doc/Section.md
doc/SectionApi.md doc/SectionApi.md
doc/SectionDTO.md doc/SectionDTO.md
doc/SectionMap.md
doc/SectionMapAllOfMapMapProvider.md
doc/SectionMapAllOfMapMapType.md
doc/SectionMapAllOfMapResource.md
doc/SectionMapAllOfMapTypeMapbox.md
doc/SectionMapApi.md
doc/SectionQuizApi.md
doc/SectionType.md doc/SectionType.md
doc/SliderDTO.md doc/SliderDTO.md
doc/TokenDTO.md doc/TokenDTO.md
@ -64,6 +72,8 @@ lib/api/device_api.dart
lib/api/instance_api.dart lib/api/instance_api.dart
lib/api/resource_api.dart lib/api/resource_api.dart
lib/api/section_api.dart lib/api/section_api.dart
lib/api/section_map_api.dart
lib/api/section_quiz_api.dart
lib/api/user_api.dart lib/api/user_api.dart
lib/api_client.dart lib/api_client.dart
lib/api_exception.dart lib/api_exception.dart
@ -74,42 +84,48 @@ lib/auth/http_basic_auth.dart
lib/auth/http_bearer_auth.dart lib/auth/http_bearer_auth.dart
lib/auth/oauth.dart lib/auth/oauth.dart
lib/model/agenda_dto.dart lib/model/agenda_dto.dart
lib/model/agenda_dto_all_of_agenda_map_provider.dart
lib/model/article_dto.dart lib/model/article_dto.dart
lib/model/categorie_dto.dart lib/model/categorie_dto.dart
lib/model/configuration_dto.dart lib/model/configuration_dto.dart
lib/model/content_dto.dart lib/model/content_dto.dart
lib/model/content_geo_point.dart lib/model/content_dto_resource.dart
lib/model/device_detail_dto.dart lib/model/device_detail_dto.dart
lib/model/device_detail_dto_all_of.dart
lib/model/device_dto.dart lib/model/device_dto.dart
lib/model/export_configuration_dto.dart lib/model/export_configuration_dto.dart
lib/model/export_configuration_dto_all_of.dart lib/model/geo_point.dart
lib/model/geo_point_dto.dart lib/model/geo_point_dto.dart
lib/model/geo_point_dto_categorie.dart lib/model/geo_point_section_map.dart
lib/model/instance.dart lib/model/instance.dart
lib/model/instance_dto.dart lib/model/instance_dto.dart
lib/model/level_dto.dart
lib/model/login_dto.dart lib/model/login_dto.dart
lib/model/map_dto.dart lib/model/map_dto.dart
lib/model/map_dto_map_provider.dart lib/model/map_dto_all_of_map_provider.dart
lib/model/map_dto_map_type.dart lib/model/map_dto_all_of_map_type.dart
lib/model/map_dto_map_type_mapbox.dart lib/model/map_dto_all_of_map_type_mapbox.dart
lib/model/map_provider.dart lib/model/map_provider.dart
lib/model/map_type_app.dart lib/model/map_type_app.dart
lib/model/map_type_map_box.dart lib/model/map_type_map_box.dart
lib/model/menu_dto.dart lib/model/menu_dto.dart
lib/model/ordered_translation_and_resource_dto.dart
lib/model/pdf_dto.dart lib/model/pdf_dto.dart
lib/model/pdf_file_dto.dart
lib/model/player_message_dto.dart lib/model/player_message_dto.dart
lib/model/puzzle_dto.dart lib/model/puzzle_dto.dart
lib/model/puzzle_dto_image.dart lib/model/puzzle_dto_all_of_puzzle_image.dart
lib/model/question_dto.dart lib/model/question_dto.dart
lib/model/quizz_dto.dart lib/model/question_dto_image_background_resource_type.dart
lib/model/quizz_dto_bad_level.dart lib/model/quiz_dto.dart
lib/model/resource.dart
lib/model/resource_dto.dart lib/model/resource_dto.dart
lib/model/resource_type.dart lib/model/resource_type.dart
lib/model/response_dto.dart lib/model/response_dto.dart
lib/model/section.dart
lib/model/section_dto.dart lib/model/section_dto.dart
lib/model/section_map.dart
lib/model/section_map_all_of_map_map_provider.dart
lib/model/section_map_all_of_map_map_type.dart
lib/model/section_map_all_of_map_resource.dart
lib/model/section_map_all_of_map_type_mapbox.dart
lib/model/section_type.dart lib/model/section_type.dart
lib/model/slider_dto.dart lib/model/slider_dto.dart
lib/model/token_dto.dart lib/model/token_dto.dart
@ -121,5 +137,3 @@ lib/model/video_dto.dart
lib/model/weather_dto.dart lib/model/weather_dto.dart
lib/model/web_dto.dart lib/model/web_dto.dart
pubspec.yaml pubspec.yaml
test/pdf_file_dto_test.dart
test/weather_dto_test.dart

View File

@ -0,0 +1 @@
7.9.0

208
manager_api_new/README.md Normal file
View File

@ -0,0 +1,208 @@
# manager_api_new
API Manager Service
This Dart package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: Version Alpha 3
- Generator version: 7.9.0
- Build package: org.openapitools.codegen.languages.DartClientCodegen
## Requirements
Dart 2.12 or later
## Installation & Usage
### Github
If this Dart package is published to Github, add the following dependency to your pubspec.yaml
```
dependencies:
manager_api_new:
git: https://github.com/GIT_USER_ID/GIT_REPO_ID.git
```
### Local
To use the package in your local drive, add the following dependency to your pubspec.yaml
```
dependencies:
manager_api_new:
path: /path/to/manager_api_new
```
## Tests
TODO
## Getting Started
Please follow the [installation procedure](#installation--usage) and then run the following:
```dart
import 'package:manager_api_new/api.dart';
// TODO Configure OAuth2 access token for authorization: bearer
//defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN';
final api_instance = AuthenticationApi();
final grantType = grantType_example; // String |
final username = username_example; // String |
final password = password_example; // String |
final clientId = clientId_example; // String |
final clientSecret = clientSecret_example; // String |
try {
final result = api_instance.authenticationAuthenticateWithForm(grantType, username, password, clientId, clientSecret);
print(result);
} catch (e) {
print('Exception when calling AuthenticationApi->authenticationAuthenticateWithForm: $e\n');
}
```
## Documentation for API Endpoints
All URIs are relative to *https://localhost:5001*
Class | Method | HTTP request | Description
------------ | ------------- | ------------- | -------------
*AuthenticationApi* | [**authenticationAuthenticateWithForm**](doc//AuthenticationApi.md#authenticationauthenticatewithform) | **POST** /api/Authentication/Token |
*AuthenticationApi* | [**authenticationAuthenticateWithJson**](doc//AuthenticationApi.md#authenticationauthenticatewithjson) | **POST** /api/Authentication/Authenticate |
*ConfigurationApi* | [**configurationCreate**](doc//ConfigurationApi.md#configurationcreate) | **POST** /api/Configuration |
*ConfigurationApi* | [**configurationDelete**](doc//ConfigurationApi.md#configurationdelete) | **DELETE** /api/Configuration/{id} |
*ConfigurationApi* | [**configurationExport**](doc//ConfigurationApi.md#configurationexport) | **GET** /api/Configuration/{id}/export |
*ConfigurationApi* | [**configurationGet**](doc//ConfigurationApi.md#configurationget) | **GET** /api/Configuration |
*ConfigurationApi* | [**configurationGetConfigurationsByPinCode**](doc//ConfigurationApi.md#configurationgetconfigurationsbypincode) | **GET** /api/Configuration/byPin |
*ConfigurationApi* | [**configurationGetDetail**](doc//ConfigurationApi.md#configurationgetdetail) | **GET** /api/Configuration/{id} |
*ConfigurationApi* | [**configurationImport**](doc//ConfigurationApi.md#configurationimport) | **POST** /api/Configuration/import |
*ConfigurationApi* | [**configurationUpdate**](doc//ConfigurationApi.md#configurationupdate) | **PUT** /api/Configuration |
*DeviceApi* | [**deviceCreate**](doc//DeviceApi.md#devicecreate) | **POST** /api/Device |
*DeviceApi* | [**deviceDelete**](doc//DeviceApi.md#devicedelete) | **DELETE** /api/Device/{id} |
*DeviceApi* | [**deviceGet**](doc//DeviceApi.md#deviceget) | **GET** /api/Device |
*DeviceApi* | [**deviceGetDetail**](doc//DeviceApi.md#devicegetdetail) | **GET** /api/Device/{id}/detail |
*DeviceApi* | [**deviceUpdate**](doc//DeviceApi.md#deviceupdate) | **PUT** /api/Device |
*DeviceApi* | [**deviceUpdateMainInfos**](doc//DeviceApi.md#deviceupdatemaininfos) | **PUT** /api/Device/mainInfos |
*InstanceApi* | [**instanceCreateInstance**](doc//InstanceApi.md#instancecreateinstance) | **POST** /api/Instance |
*InstanceApi* | [**instanceDeleteInstance**](doc//InstanceApi.md#instancedeleteinstance) | **DELETE** /api/Instance/{id} |
*InstanceApi* | [**instanceGet**](doc//InstanceApi.md#instanceget) | **GET** /api/Instance |
*InstanceApi* | [**instanceGetDetail**](doc//InstanceApi.md#instancegetdetail) | **GET** /api/Instance/{id} |
*InstanceApi* | [**instanceGetInstanceByPinCode**](doc//InstanceApi.md#instancegetinstancebypincode) | **GET** /api/Instance/byPin |
*InstanceApi* | [**instanceUpdateinstance**](doc//InstanceApi.md#instanceupdateinstance) | **PUT** /api/Instance |
*ResourceApi* | [**resourceCreate**](doc//ResourceApi.md#resourcecreate) | **POST** /api/Resource |
*ResourceApi* | [**resourceDelete**](doc//ResourceApi.md#resourcedelete) | **DELETE** /api/Resource/{id} |
*ResourceApi* | [**resourceGet**](doc//ResourceApi.md#resourceget) | **GET** /api/Resource |
*ResourceApi* | [**resourceGetDetail**](doc//ResourceApi.md#resourcegetdetail) | **GET** /api/Resource/{id}/detail |
*ResourceApi* | [**resourceShow**](doc//ResourceApi.md#resourceshow) | **GET** /api/Resource/{id} |
*ResourceApi* | [**resourceUpdate**](doc//ResourceApi.md#resourceupdate) | **PUT** /api/Resource |
*ResourceApi* | [**resourceUpload**](doc//ResourceApi.md#resourceupload) | **POST** /api/Resource/upload |
*SectionApi* | [**sectionCreate**](doc//SectionApi.md#sectioncreate) | **POST** /api/Section |
*SectionApi* | [**sectionDelete**](doc//SectionApi.md#sectiondelete) | **DELETE** /api/Section/{id} |
*SectionApi* | [**sectionDeleteAllForConfiguration**](doc//SectionApi.md#sectiondeleteallforconfiguration) | **DELETE** /api/Section/configuration/{id} |
*SectionApi* | [**sectionGet**](doc//SectionApi.md#sectionget) | **GET** /api/Section |
*SectionApi* | [**sectionGetAgendaDTO**](doc//SectionApi.md#sectiongetagendadto) | **GET** /api/Section/AgendaDTO |
*SectionApi* | [**sectionGetAllBeaconsForInstance**](doc//SectionApi.md#sectiongetallbeaconsforinstance) | **GET** /api/Section/beacons/{instanceId} |
*SectionApi* | [**sectionGetAllSectionSubSections**](doc//SectionApi.md#sectiongetallsectionsubsections) | **GET** /api/Section/{id}/subsections |
*SectionApi* | [**sectionGetArticleDTO**](doc//SectionApi.md#sectiongetarticledto) | **GET** /api/Section/ArticleDTO |
*SectionApi* | [**sectionGetDetail**](doc//SectionApi.md#sectiongetdetail) | **GET** /api/Section/{id} |
*SectionApi* | [**sectionGetFromConfiguration**](doc//SectionApi.md#sectiongetfromconfiguration) | **GET** /api/Section/configuration/{id} |
*SectionApi* | [**sectionGetFromConfigurationDetail**](doc//SectionApi.md#sectiongetfromconfigurationdetail) | **GET** /api/Section/configuration/{id}/detail |
*SectionApi* | [**sectionGetMapDTO**](doc//SectionApi.md#sectiongetmapdto) | **GET** /api/Section/MapDTO |
*SectionApi* | [**sectionGetMenuDTO**](doc//SectionApi.md#sectiongetmenudto) | **GET** /api/Section/MenuDTO |
*SectionApi* | [**sectionGetPdfDTO**](doc//SectionApi.md#sectiongetpdfdto) | **GET** /api/Section/PdfDTO |
*SectionApi* | [**sectionGetPuzzleDTO**](doc//SectionApi.md#sectiongetpuzzledto) | **GET** /api/Section/PuzzleDTO |
*SectionApi* | [**sectionGetQuizDTO**](doc//SectionApi.md#sectiongetquizdto) | **GET** /api/Section/QuizDTO |
*SectionApi* | [**sectionGetSliderDTO**](doc//SectionApi.md#sectiongetsliderdto) | **GET** /api/Section/SliderDTO |
*SectionApi* | [**sectionGetVideoDTO**](doc//SectionApi.md#sectiongetvideodto) | **GET** /api/Section/VideoDTO |
*SectionApi* | [**sectionGetWeatherDTO**](doc//SectionApi.md#sectiongetweatherdto) | **GET** /api/Section/WeatherDTO |
*SectionApi* | [**sectionGetWebDTO**](doc//SectionApi.md#sectiongetwebdto) | **GET** /api/Section/WebDTO |
*SectionApi* | [**sectionPlayerMessageDTO**](doc//SectionApi.md#sectionplayermessagedto) | **GET** /api/Section/PlayerMessageDTO |
*SectionApi* | [**sectionUpdate**](doc//SectionApi.md#sectionupdate) | **PUT** /api/Section |
*SectionApi* | [**sectionUpdateOrder**](doc//SectionApi.md#sectionupdateorder) | **PUT** /api/Section/order |
*SectionMapApi* | [**sectionMapCreate**](doc//SectionMapApi.md#sectionmapcreate) | **POST** /api/SectionMap/{sectionId}/points |
*SectionMapApi* | [**sectionMapDelete**](doc//SectionMapApi.md#sectionmapdelete) | **DELETE** /api/SectionMap/points/delete/{geoPointId} |
*SectionMapApi* | [**sectionMapGetAllGeoPointsFromSection**](doc//SectionMapApi.md#sectionmapgetallgeopointsfromsection) | **GET** /api/SectionMap/{sectionId}/points |
*SectionMapApi* | [**sectionMapUpdate**](doc//SectionMapApi.md#sectionmapupdate) | **PUT** /api/SectionMap |
*SectionQuizApi* | [**sectionQuizCreate**](doc//SectionQuizApi.md#sectionquizcreate) | **POST** /api/SectionQuiz/{sectionId}/questions |
*SectionQuizApi* | [**sectionQuizDelete**](doc//SectionQuizApi.md#sectionquizdelete) | **DELETE** /api/SectionQuiz/questions/delete/{quizQuestionId} |
*SectionQuizApi* | [**sectionQuizGetAllQuizQuestionFromSection**](doc//SectionQuizApi.md#sectionquizgetallquizquestionfromsection) | **GET** /api/SectionQuiz/{sectionId}/questions |
*SectionQuizApi* | [**sectionQuizUpdate**](doc//SectionQuizApi.md#sectionquizupdate) | **PUT** /api/SectionQuiz |
*UserApi* | [**userCreateUser**](doc//UserApi.md#usercreateuser) | **POST** /api/User |
*UserApi* | [**userDeleteUser**](doc//UserApi.md#userdeleteuser) | **DELETE** /api/User/{id} |
*UserApi* | [**userGet**](doc//UserApi.md#userget) | **GET** /api/User |
*UserApi* | [**userGetDetail**](doc//UserApi.md#usergetdetail) | **GET** /api/User/{id} |
*UserApi* | [**userUpdateUser**](doc//UserApi.md#userupdateuser) | **PUT** /api/User |
## Documentation For Models
- [AgendaDTO](doc//AgendaDTO.md)
- [AgendaDTOAllOfAgendaMapProvider](doc//AgendaDTOAllOfAgendaMapProvider.md)
- [ArticleDTO](doc//ArticleDTO.md)
- [CategorieDTO](doc//CategorieDTO.md)
- [ConfigurationDTO](doc//ConfigurationDTO.md)
- [ContentDTO](doc//ContentDTO.md)
- [ContentDTOResource](doc//ContentDTOResource.md)
- [DeviceDTO](doc//DeviceDTO.md)
- [DeviceDetailDTO](doc//DeviceDetailDTO.md)
- [ExportConfigurationDTO](doc//ExportConfigurationDTO.md)
- [GeoPoint](doc//GeoPoint.md)
- [GeoPointDTO](doc//GeoPointDTO.md)
- [GeoPointSectionMap](doc//GeoPointSectionMap.md)
- [Instance](doc//Instance.md)
- [InstanceDTO](doc//InstanceDTO.md)
- [LoginDTO](doc//LoginDTO.md)
- [MapDTO](doc//MapDTO.md)
- [MapDTOAllOfMapProvider](doc//MapDTOAllOfMapProvider.md)
- [MapDTOAllOfMapType](doc//MapDTOAllOfMapType.md)
- [MapDTOAllOfMapTypeMapbox](doc//MapDTOAllOfMapTypeMapbox.md)
- [MapProvider](doc//MapProvider.md)
- [MapTypeApp](doc//MapTypeApp.md)
- [MapTypeMapBox](doc//MapTypeMapBox.md)
- [MenuDTO](doc//MenuDTO.md)
- [OrderedTranslationAndResourceDTO](doc//OrderedTranslationAndResourceDTO.md)
- [PdfDTO](doc//PdfDTO.md)
- [PlayerMessageDTO](doc//PlayerMessageDTO.md)
- [PuzzleDTO](doc//PuzzleDTO.md)
- [PuzzleDTOAllOfPuzzleImage](doc//PuzzleDTOAllOfPuzzleImage.md)
- [QuestionDTO](doc//QuestionDTO.md)
- [QuestionDTOImageBackgroundResourceType](doc//QuestionDTOImageBackgroundResourceType.md)
- [QuizDTO](doc//QuizDTO.md)
- [Resource](doc//Resource.md)
- [ResourceDTO](doc//ResourceDTO.md)
- [ResourceType](doc//ResourceType.md)
- [ResponseDTO](doc//ResponseDTO.md)
- [Section](doc//Section.md)
- [SectionDTO](doc//SectionDTO.md)
- [SectionMap](doc//SectionMap.md)
- [SectionMapAllOfMapMapProvider](doc//SectionMapAllOfMapMapProvider.md)
- [SectionMapAllOfMapMapType](doc//SectionMapAllOfMapMapType.md)
- [SectionMapAllOfMapResource](doc//SectionMapAllOfMapResource.md)
- [SectionMapAllOfMapTypeMapbox](doc//SectionMapAllOfMapTypeMapbox.md)
- [SectionType](doc//SectionType.md)
- [SliderDTO](doc//SliderDTO.md)
- [TokenDTO](doc//TokenDTO.md)
- [TranslationAndResourceDTO](doc//TranslationAndResourceDTO.md)
- [TranslationDTO](doc//TranslationDTO.md)
- [User](doc//User.md)
- [UserDetailDTO](doc//UserDetailDTO.md)
- [VideoDTO](doc//VideoDTO.md)
- [WeatherDTO](doc//WeatherDTO.md)
- [WebDTO](doc//WebDTO.md)
## Documentation For Authorization
Authentication schemes defined for the API:
### bearer
- **Type**: OAuth
- **Flow**: password
- **Authorization URL**: /authentication/Token
- **Scopes**:
- **Manager-api**: Manager WebAPI
## Author

View File

@ -0,0 +1,34 @@
# manager_api_new.model.AgendaDTO
## Load the model package
```dart
import 'package:manager_api_new/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**id** | **String** | | [optional]
**label** | **String** | | [optional]
**title** | [**List<TranslationDTO>**](TranslationDTO.md) | | [optional] [default to const []]
**description** | [**List<TranslationDTO>**](TranslationDTO.md) | | [optional] [default to const []]
**imageId** | **String** | | [optional]
**imageSource** | **String** | | [optional]
**configurationId** | **String** | | [optional]
**isSubSection** | **bool** | | [optional]
**parentId** | **String** | | [optional]
**type** | [**SectionType**](SectionType.md) | | [optional]
**dateCreation** | [**DateTime**](DateTime.md) | | [optional]
**order** | **int** | | [optional]
**instanceId** | **String** | | [optional]
**latitude** | **String** | | [optional]
**longitude** | **String** | | [optional]
**meterZoneGPS** | **int** | | [optional]
**isBeacon** | **bool** | | [optional]
**beaconId** | **int** | | [optional]
**resourceIds** | [**List<TranslationDTO>**](TranslationDTO.md) | | [optional] [default to const []]
**agendaMapProvider** | [**AgendaDTOAllOfAgendaMapProvider**](AgendaDTOAllOfAgendaMapProvider.md) | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -1,14 +1,13 @@
# manager_api.model.WebDTO # manager_api_new.model.AgendaDTOAllOfAgendaMapProvider
## Load the model package ## Load the model package
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
``` ```
## Properties ## Properties
Name | Type | Description | Notes Name | Type | Description | Notes
------------ | ------------- | ------------- | ------------- ------------ | ------------- | ------------- | -------------
**source_** | **String** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,37 @@
# manager_api_new.model.ArticleDTO
## Load the model package
```dart
import 'package:manager_api_new/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**id** | **String** | | [optional]
**label** | **String** | | [optional]
**title** | [**List<TranslationDTO>**](TranslationDTO.md) | | [optional] [default to const []]
**description** | [**List<TranslationDTO>**](TranslationDTO.md) | | [optional] [default to const []]
**imageId** | **String** | | [optional]
**imageSource** | **String** | | [optional]
**configurationId** | **String** | | [optional]
**isSubSection** | **bool** | | [optional]
**parentId** | **String** | | [optional]
**type** | [**SectionType**](SectionType.md) | | [optional]
**dateCreation** | [**DateTime**](DateTime.md) | | [optional]
**order** | **int** | | [optional]
**instanceId** | **String** | | [optional]
**latitude** | **String** | | [optional]
**longitude** | **String** | | [optional]
**meterZoneGPS** | **int** | | [optional]
**isBeacon** | **bool** | | [optional]
**beaconId** | **int** | | [optional]
**content** | [**List<TranslationDTO>**](TranslationDTO.md) | | [optional] [default to const []]
**isContentTop** | **bool** | | [optional]
**audioIds** | [**List<TranslationDTO>**](TranslationDTO.md) | | [optional] [default to const []]
**isReadAudioAuto** | **bool** | | [optional]
**contents** | [**List<ContentDTO>**](ContentDTO.md) | | [optional] [default to const []]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -1,11 +1,11 @@
# manager_api.api.AuthenticationApi # manager_api_new.api.AuthenticationApi
## Load the API package ## Load the API package
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
``` ```
All URIs are relative to *https://api.myinfomate.be* All URIs are relative to *https://localhost:5001*
Method | HTTP request | Description Method | HTTP request | Description
------------- | ------------- | ------------- ------------- | ------------- | -------------
@ -20,7 +20,7 @@ Method | HTTP request | Description
### Example ### Example
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
// TODO Configure OAuth2 access token for authorization: bearer // TODO Configure OAuth2 access token for authorization: bearer
//defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN'; //defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN';
@ -71,7 +71,7 @@ Name | Type | Description | Notes
### Example ### Example
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
// TODO Configure OAuth2 access token for authorization: bearer // TODO Configure OAuth2 access token for authorization: bearer
//defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN'; //defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN';

View File

@ -1,8 +1,8 @@
# manager_api.model.CategorieDTO # manager_api_new.model.CategorieDTO
## Load the model package ## Load the model package
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
``` ```
## Properties ## Properties
@ -11,8 +11,7 @@ Name | Type | Description | Notes
**id** | **int** | | [optional] **id** | **int** | | [optional]
**label** | [**List<TranslationDTO>**](TranslationDTO.md) | | [optional] [default to const []] **label** | [**List<TranslationDTO>**](TranslationDTO.md) | | [optional] [default to const []]
**icon** | **String** | | [optional] **icon** | **String** | | [optional]
**iconResourceId** | **String** | | [optional] **resourceDTO** | [**ContentDTOResource**](ContentDTOResource.md) | | [optional]
**iconUrl** | **String** | | [optional]
**order** | **int** | | [optional] **order** | **int** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -1,11 +1,11 @@
# manager_api.api.ConfigurationApi # manager_api_new.api.ConfigurationApi
## Load the API package ## Load the API package
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
``` ```
All URIs are relative to *https://api.myinfomate.be* All URIs are relative to *https://localhost:5001*
Method | HTTP request | Description Method | HTTP request | Description
------------- | ------------- | ------------- ------------- | ------------- | -------------
@ -26,7 +26,7 @@ Method | HTTP request | Description
### Example ### Example
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
// TODO Configure OAuth2 access token for authorization: bearer // TODO Configure OAuth2 access token for authorization: bearer
//defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN'; //defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN';
@ -69,7 +69,7 @@ Name | Type | Description | Notes
### Example ### Example
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
// TODO Configure OAuth2 access token for authorization: bearer // TODO Configure OAuth2 access token for authorization: bearer
//defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN'; //defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN';
@ -112,7 +112,7 @@ Name | Type | Description | Notes
### Example ### Example
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
// TODO Configure OAuth2 access token for authorization: bearer // TODO Configure OAuth2 access token for authorization: bearer
//defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN'; //defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN';
@ -157,7 +157,7 @@ Name | Type | Description | Notes
### Example ### Example
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
// TODO Configure OAuth2 access token for authorization: bearer // TODO Configure OAuth2 access token for authorization: bearer
//defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN'; //defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN';
@ -200,12 +200,12 @@ Name | Type | Description | Notes
### Example ### Example
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
// TODO Configure OAuth2 access token for authorization: bearer // TODO Configure OAuth2 access token for authorization: bearer
//defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN'; //defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN';
final api_instance = ConfigurationApi(); final api_instance = ConfigurationApi();
final pinCode = 56; // int | final pinCode = pinCode_example; // String |
try { try {
final result = api_instance.configurationGetConfigurationsByPinCode(pinCode); final result = api_instance.configurationGetConfigurationsByPinCode(pinCode);
@ -219,7 +219,7 @@ try {
Name | Type | Description | Notes Name | Type | Description | Notes
------------- | ------------- | ------------- | ------------- ------------- | ------------- | ------------- | -------------
**pinCode** | **int**| | [optional] **pinCode** | **String**| | [optional]
### Return type ### Return type
@ -243,7 +243,7 @@ Name | Type | Description | Notes
### Example ### Example
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
// TODO Configure OAuth2 access token for authorization: bearer // TODO Configure OAuth2 access token for authorization: bearer
//defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN'; //defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN';
@ -286,7 +286,7 @@ Name | Type | Description | Notes
### Example ### Example
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
// TODO Configure OAuth2 access token for authorization: bearer // TODO Configure OAuth2 access token for authorization: bearer
//defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN'; //defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN';
@ -329,7 +329,7 @@ Name | Type | Description | Notes
### Example ### Example
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
// TODO Configure OAuth2 access token for authorization: bearer // TODO Configure OAuth2 access token for authorization: bearer
//defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN'; //defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN';

View File

@ -1,8 +1,8 @@
# manager_api.model.ConfigurationDTO # manager_api_new.model.ConfigurationDTO
## Load the model package ## Load the model package
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
``` ```
## Properties ## Properties
@ -24,10 +24,6 @@ Name | Type | Description | Notes
**sectionIds** | **List<String>** | | [optional] [default to const []] **sectionIds** | **List<String>** | | [optional] [default to const []]
**loaderImageId** | **String** | | [optional] **loaderImageId** | **String** | | [optional]
**loaderImageUrl** | **String** | | [optional] **loaderImageUrl** | **String** | | [optional]
**weatherCity** | **String** | | [optional]
**weatherUpdatedDate** | [**DateTime**](DateTime.md) | | [optional]
**weatherResult** | **String** | | [optional]
**isWeather** | **bool** | | [optional]
**isDate** | **bool** | | [optional] **isDate** | **bool** | | [optional]
**isHour** | **bool** | | [optional] **isHour** | **bool** | | [optional]
**isSectionImageBackground** | **bool** | | [optional] **isSectionImageBackground** | **bool** | | [optional]

View File

@ -1,8 +1,8 @@
# manager_api.model.ContentDTO # manager_api_new.model.ContentDTO
## Load the model package ## Load the model package
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
``` ```
## Properties ## Properties
@ -10,10 +10,9 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | ------------- ------------ | ------------- | ------------- | -------------
**title** | [**List<TranslationDTO>**](TranslationDTO.md) | | [optional] [default to const []] **title** | [**List<TranslationDTO>**](TranslationDTO.md) | | [optional] [default to const []]
**description** | [**List<TranslationDTO>**](TranslationDTO.md) | | [optional] [default to const []] **description** | [**List<TranslationDTO>**](TranslationDTO.md) | | [optional] [default to const []]
**resourceId** | **String** | | [optional]
**resourceUrl** | **String** | | [optional]
**order** | **int** | | [optional] **order** | **int** | | [optional]
**resourceType** | [**ResourceType**](ResourceType.md) | | [optional] **resourceId** | **String** | | [optional]
**resource** | [**ContentDTOResource**](ContentDTOResource.md) | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -1,19 +1,17 @@
# manager_api.model.User # manager_api_new.model.ContentDTOResource
## Load the model package ## Load the model package
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
``` ```
## Properties ## Properties
Name | Type | Description | Notes Name | Type | Description | Notes
------------ | ------------- | ------------- | ------------- ------------ | ------------- | ------------- | -------------
**id** | **String** | | [optional] **id** | **String** | | [optional]
**email** | **String** | | [optional] **type** | [**ResourceType**](ResourceType.md) | | [optional]
**password** | **String** | | [optional] **label** | **String** | | [optional]
**firstName** | **String** | | [optional] **url** | **String** | | [optional]
**lastName** | **String** | | [optional]
**token** | **String** | | [optional]
**dateCreation** | [**DateTime**](DateTime.md) | | [optional] **dateCreation** | [**DateTime**](DateTime.md) | | [optional]
**instanceId** | **String** | | [optional] **instanceId** | **String** | | [optional]

View File

@ -1,8 +1,8 @@
# manager_api.model.ContentGeoPoint # manager_api_new.model.ContentGeoPoint
## Load the model package ## Load the model package
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
``` ```
## Properties ## Properties

View File

@ -1,11 +1,11 @@
# manager_api.api.DeviceApi # manager_api_new.api.DeviceApi
## Load the API package ## Load the API package
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
``` ```
All URIs are relative to *https://api.myinfomate.be* All URIs are relative to *https://localhost:5001*
Method | HTTP request | Description Method | HTTP request | Description
------------- | ------------- | ------------- ------------- | ------------- | -------------
@ -24,7 +24,7 @@ Method | HTTP request | Description
### Example ### Example
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
// TODO Configure OAuth2 access token for authorization: bearer // TODO Configure OAuth2 access token for authorization: bearer
//defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN'; //defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN';
@ -67,7 +67,7 @@ Name | Type | Description | Notes
### Example ### Example
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
// TODO Configure OAuth2 access token for authorization: bearer // TODO Configure OAuth2 access token for authorization: bearer
//defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN'; //defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN';
@ -110,7 +110,7 @@ Name | Type | Description | Notes
### Example ### Example
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
// TODO Configure OAuth2 access token for authorization: bearer // TODO Configure OAuth2 access token for authorization: bearer
//defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN'; //defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN';
@ -153,7 +153,7 @@ Name | Type | Description | Notes
### Example ### Example
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
// TODO Configure OAuth2 access token for authorization: bearer // TODO Configure OAuth2 access token for authorization: bearer
//defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN'; //defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN';
@ -196,7 +196,7 @@ Name | Type | Description | Notes
### Example ### Example
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
// TODO Configure OAuth2 access token for authorization: bearer // TODO Configure OAuth2 access token for authorization: bearer
//defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN'; //defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN';
@ -239,7 +239,7 @@ Name | Type | Description | Notes
### Example ### Example
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
// TODO Configure OAuth2 access token for authorization: bearer // TODO Configure OAuth2 access token for authorization: bearer
//defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN'; //defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN';

View File

@ -1,8 +1,8 @@
# manager_api.model.DeviceDTO # manager_api_new.model.DeviceDTO
## Load the model package ## Load the model package
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
``` ```
## Properties ## Properties

View File

@ -1,8 +1,8 @@
# manager_api.model.DeviceDetailDTO # manager_api_new.model.DeviceDetailDTO
## Load the model package ## Load the model package
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
``` ```
## Properties ## Properties

View File

@ -1,8 +1,8 @@
# manager_api.model.DeviceDetailDTOAllOf # manager_api_new.model.DeviceDetailDTOAllOf
## Load the model package ## Load the model package
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
``` ```
## Properties ## Properties

View File

@ -1,8 +1,8 @@
# manager_api.model.ExportConfigurationDTO # manager_api_new.model.ExportConfigurationDTO
## Load the model package ## Load the model package
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
``` ```
## Properties ## Properties
@ -24,10 +24,6 @@ Name | Type | Description | Notes
**sectionIds** | **List<String>** | | [optional] [default to const []] **sectionIds** | **List<String>** | | [optional] [default to const []]
**loaderImageId** | **String** | | [optional] **loaderImageId** | **String** | | [optional]
**loaderImageUrl** | **String** | | [optional] **loaderImageUrl** | **String** | | [optional]
**weatherCity** | **String** | | [optional]
**weatherUpdatedDate** | [**DateTime**](DateTime.md) | | [optional]
**weatherResult** | **String** | | [optional]
**isWeather** | **bool** | | [optional]
**isDate** | **bool** | | [optional] **isDate** | **bool** | | [optional]
**isHour** | **bool** | | [optional] **isHour** | **bool** | | [optional]
**isSectionImageBackground** | **bool** | | [optional] **isSectionImageBackground** | **bool** | | [optional]

View File

@ -1,8 +1,8 @@
# manager_api.model.ExportConfigurationDTOAllOf # manager_api_new.model.ExportConfigurationDTOAllOf
## Load the model package ## Load the model package
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
``` ```
## Properties ## Properties

View File

@ -0,0 +1,30 @@
# manager_api_new.model.GeoPoint
## Load the model package
```dart
import 'package:manager_api_new/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**id** | **int** | |
**title** | [**List<TranslationDTO>**](TranslationDTO.md) | | [default to const []]
**description** | [**List<TranslationDTO>**](TranslationDTO.md) | | [default to const []]
**contents** | [**List<ContentDTO>**](ContentDTO.md) | | [default to const []]
**schedules** | [**List<TranslationDTO>**](TranslationDTO.md) | | [default to const []]
**prices** | [**List<TranslationDTO>**](TranslationDTO.md) | | [default to const []]
**phone** | [**List<TranslationDTO>**](TranslationDTO.md) | | [default to const []]
**email** | [**List<TranslationDTO>**](TranslationDTO.md) | | [default to const []]
**site** | [**List<TranslationDTO>**](TranslationDTO.md) | | [default to const []]
**categorieId** | **int** | | [optional]
**latitude** | **String** | | [optional]
**longitude** | **String** | | [optional]
**imageResourceId** | **String** | | [optional]
**imageUrl** | **String** | | [optional]
**sectionMapId** | **String** | | [optional]
**sectionMap** | [**GeoPointSectionMap**](GeoPointSectionMap.md) | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -1,8 +1,8 @@
# manager_api.model.GeoPointDTO # manager_api_new.model.GeoPointDTO
## Load the model package ## Load the model package
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
``` ```
## Properties ## Properties
@ -11,8 +11,7 @@ Name | Type | Description | Notes
**id** | **int** | | [optional] **id** | **int** | | [optional]
**title** | [**List<TranslationDTO>**](TranslationDTO.md) | | [optional] [default to const []] **title** | [**List<TranslationDTO>**](TranslationDTO.md) | | [optional] [default to const []]
**description** | [**List<TranslationDTO>**](TranslationDTO.md) | | [optional] [default to const []] **description** | [**List<TranslationDTO>**](TranslationDTO.md) | | [optional] [default to const []]
**contents** | [**List<ContentGeoPoint>**](ContentGeoPoint.md) | | [optional] [default to const []] **contents** | [**List<ContentDTO>**](ContentDTO.md) | | [optional] [default to const []]
**categorie** | [**GeoPointDTOCategorie**](GeoPointDTOCategorie.md) | | [optional]
**categorieId** | **int** | | [optional] **categorieId** | **int** | | [optional]
**latitude** | **String** | | [optional] **latitude** | **String** | | [optional]
**longitude** | **String** | | [optional] **longitude** | **String** | | [optional]

View File

@ -1,8 +1,8 @@
# manager_api.model.GeoPointDTOCategorie # manager_api_new.model.GeoPointDTOCategorie
## Load the model package ## Load the model package
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
``` ```
## Properties ## Properties

View File

@ -0,0 +1,42 @@
# manager_api_new.model.GeoPointSectionMap
## Load the model package
```dart
import 'package:manager_api_new/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**id** | **String** | |
**label** | **String** | |
**title** | [**List<TranslationDTO>**](TranslationDTO.md) | | [default to const []]
**configurationId** | **String** | |
**type** | [**SectionType**](SectionType.md) | |
**isSubSection** | **bool** | |
**instanceId** | **String** | |
**mapCategories** | [**List<CategorieDTO>**](CategorieDTO.md) | | [default to const []]
**description** | [**List<TranslationDTO>**](TranslationDTO.md) | | [optional] [default to const []]
**order** | **int** | | [optional]
**imageId** | **String** | | [optional]
**imageSource** | **String** | | [optional]
**parentId** | **String** | | [optional]
**dateCreation** | [**DateTime**](DateTime.md) | | [optional]
**isBeacon** | **bool** | | [optional]
**beaconId** | **int** | | [optional]
**latitude** | **String** | | [optional]
**longitude** | **String** | | [optional]
**meterZoneGPS** | **int** | | [optional]
**mapZoom** | **int** | | [optional]
**mapMapType** | [**SectionMapAllOfMapMapType**](SectionMapAllOfMapMapType.md) | | [optional]
**mapTypeMapbox** | [**SectionMapAllOfMapTypeMapbox**](SectionMapAllOfMapTypeMapbox.md) | | [optional]
**mapMapProvider** | [**SectionMapAllOfMapMapProvider**](SectionMapAllOfMapMapProvider.md) | | [optional]
**mapPoints** | [**List<GeoPoint>**](GeoPoint.md) | | [optional] [default to const []]
**mapResourceId** | **String** | | [optional]
**mapResource** | [**SectionMapAllOfMapResource**](SectionMapAllOfMapResource.md) | | [optional]
**mapCenterLatitude** | **String** | | [optional]
**mapCenterLongitude** | **String** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -1,8 +1,8 @@
# manager_api.model.ImageDTO # manager_api_new.model.ImageDTO
## Load the model package ## Load the model package
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
``` ```
## Properties ## Properties
@ -13,6 +13,7 @@ Name | Type | Description | Notes
**resourceId** | **String** | | [optional] **resourceId** | **String** | | [optional]
**source_** | **String** | | [optional] **source_** | **String** | | [optional]
**order** | **int** | | [optional] **order** | **int** | | [optional]
**type** | [**ResourceType**](ResourceType.md) | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -1,8 +1,8 @@
# manager_api.model.ImageGeoPoint # manager_api_new.model.ImageGeoPoint
## Load the model package ## Load the model package
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
``` ```
## Properties ## Properties

View File

@ -1,17 +1,17 @@
# manager_api.model.Instance # manager_api_new.model.Instance
## Load the model package ## Load the model package
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
``` ```
## Properties ## Properties
Name | Type | Description | Notes Name | Type | Description | Notes
------------ | ------------- | ------------- | ------------- ------------ | ------------- | ------------- | -------------
**id** | **String** | | [optional] **id** | **String** | |
**name** | **String** | | [optional] **name** | **String** | |
**dateCreation** | [**DateTime**](DateTime.md) | | [optional] **dateCreation** | [**DateTime**](DateTime.md) | | [optional]
**pinCode** | **int** | | [optional] **pinCode** | **String** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -1,11 +1,11 @@
# manager_api.api.InstanceApi # manager_api_new.api.InstanceApi
## Load the API package ## Load the API package
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
``` ```
All URIs are relative to *https://api.myinfomate.be* All URIs are relative to *https://localhost:5001*
Method | HTTP request | Description Method | HTTP request | Description
------------- | ------------- | ------------- ------------- | ------------- | -------------
@ -18,21 +18,21 @@ Method | HTTP request | Description
# **instanceCreateInstance** # **instanceCreateInstance**
> InstanceDTO instanceCreateInstance(instance) > InstanceDTO instanceCreateInstance(instanceDTO)
### Example ### Example
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
// TODO Configure OAuth2 access token for authorization: bearer // TODO Configure OAuth2 access token for authorization: bearer
//defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN'; //defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN';
final api_instance = InstanceApi(); final api_instance = InstanceApi();
final instance = Instance(); // Instance | final instanceDTO = InstanceDTO(); // InstanceDTO |
try { try {
final result = api_instance.instanceCreateInstance(instance); final result = api_instance.instanceCreateInstance(instanceDTO);
print(result); print(result);
} catch (e) { } catch (e) {
print('Exception when calling InstanceApi->instanceCreateInstance: $e\n'); print('Exception when calling InstanceApi->instanceCreateInstance: $e\n');
@ -43,7 +43,7 @@ try {
Name | Type | Description | Notes Name | Type | Description | Notes
------------- | ------------- | ------------- | ------------- ------------- | ------------- | ------------- | -------------
**instance** | [**Instance**](Instance.md)| | **instanceDTO** | [**InstanceDTO**](InstanceDTO.md)| |
### Return type ### Return type
@ -67,7 +67,7 @@ Name | Type | Description | Notes
### Example ### Example
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
// TODO Configure OAuth2 access token for authorization: bearer // TODO Configure OAuth2 access token for authorization: bearer
//defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN'; //defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN';
@ -110,7 +110,7 @@ Name | Type | Description | Notes
### Example ### Example
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
// TODO Configure OAuth2 access token for authorization: bearer // TODO Configure OAuth2 access token for authorization: bearer
//defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN'; //defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN';
@ -149,7 +149,7 @@ This endpoint does not need any parameter.
### Example ### Example
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
// TODO Configure OAuth2 access token for authorization: bearer // TODO Configure OAuth2 access token for authorization: bearer
//defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN'; //defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN';
@ -192,12 +192,12 @@ Name | Type | Description | Notes
### Example ### Example
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
// TODO Configure OAuth2 access token for authorization: bearer // TODO Configure OAuth2 access token for authorization: bearer
//defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN'; //defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN';
final api_instance = InstanceApi(); final api_instance = InstanceApi();
final pinCode = 56; // int | final pinCode = pinCode_example; // String |
try { try {
final result = api_instance.instanceGetInstanceByPinCode(pinCode); final result = api_instance.instanceGetInstanceByPinCode(pinCode);
@ -211,7 +211,7 @@ try {
Name | Type | Description | Notes Name | Type | Description | Notes
------------- | ------------- | ------------- | ------------- ------------- | ------------- | ------------- | -------------
**pinCode** | **int**| | [optional] **pinCode** | **String**| | [optional]
### Return type ### Return type
@ -229,21 +229,21 @@ Name | Type | Description | Notes
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **instanceUpdateinstance** # **instanceUpdateinstance**
> InstanceDTO instanceUpdateinstance(instance) > InstanceDTO instanceUpdateinstance(instanceDTO)
### Example ### Example
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
// TODO Configure OAuth2 access token for authorization: bearer // TODO Configure OAuth2 access token for authorization: bearer
//defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN'; //defaultApiClient.getAuthentication<OAuth>('bearer').accessToken = 'YOUR_ACCESS_TOKEN';
final api_instance = InstanceApi(); final api_instance = InstanceApi();
final instance = Instance(); // Instance | final instanceDTO = InstanceDTO(); // InstanceDTO |
try { try {
final result = api_instance.instanceUpdateinstance(instance); final result = api_instance.instanceUpdateinstance(instanceDTO);
print(result); print(result);
} catch (e) { } catch (e) {
print('Exception when calling InstanceApi->instanceUpdateinstance: $e\n'); print('Exception when calling InstanceApi->instanceUpdateinstance: $e\n');
@ -254,7 +254,7 @@ try {
Name | Type | Description | Notes Name | Type | Description | Notes
------------- | ------------- | ------------- | ------------- ------------- | ------------- | ------------- | -------------
**instance** | [**Instance**](Instance.md)| | **instanceDTO** | [**InstanceDTO**](InstanceDTO.md)| |
### Return type ### Return type

View File

@ -1,8 +1,8 @@
# manager_api.model.InstanceDTO # manager_api_new.model.InstanceDTO
## Load the model package ## Load the model package
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
``` ```
## Properties ## Properties
@ -11,7 +11,7 @@ Name | Type | Description | Notes
**id** | **String** | | [optional] **id** | **String** | | [optional]
**name** | **String** | | [optional] **name** | **String** | | [optional]
**dateCreation** | [**DateTime**](DateTime.md) | | [optional] **dateCreation** | [**DateTime**](DateTime.md) | | [optional]
**pinCode** | **int** | | [optional] **pinCode** | **String** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -1,8 +1,8 @@
# manager_api.model.LevelDTO # manager_api_new.model.LevelDTO
## Load the model package ## Load the model package
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
``` ```
## Properties ## Properties

View File

@ -1,8 +1,8 @@
# manager_api.model.LoginDTO # manager_api_new.model.LoginDTO
## Load the model package ## Load the model package
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
``` ```
## Properties ## Properties

View File

@ -0,0 +1,42 @@
# manager_api_new.model.MapDTO
## Load the model package
```dart
import 'package:manager_api_new/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**id** | **String** | | [optional]
**label** | **String** | | [optional]
**title** | [**List<TranslationDTO>**](TranslationDTO.md) | | [optional] [default to const []]
**description** | [**List<TranslationDTO>**](TranslationDTO.md) | | [optional] [default to const []]
**imageId** | **String** | | [optional]
**imageSource** | **String** | | [optional]
**configurationId** | **String** | | [optional]
**isSubSection** | **bool** | | [optional]
**parentId** | **String** | | [optional]
**type** | [**SectionType**](SectionType.md) | | [optional]
**dateCreation** | [**DateTime**](DateTime.md) | | [optional]
**order** | **int** | | [optional]
**instanceId** | **String** | | [optional]
**latitude** | **String** | | [optional]
**longitude** | **String** | | [optional]
**meterZoneGPS** | **int** | | [optional]
**isBeacon** | **bool** | | [optional]
**beaconId** | **int** | | [optional]
**zoom** | **int** | | [optional]
**mapType** | [**MapDTOAllOfMapType**](MapDTOAllOfMapType.md) | | [optional]
**mapTypeMapbox** | [**MapDTOAllOfMapTypeMapbox**](MapDTOAllOfMapTypeMapbox.md) | | [optional]
**mapProvider** | [**MapDTOAllOfMapProvider**](MapDTOAllOfMapProvider.md) | | [optional]
**points** | [**List<GeoPointDTO>**](GeoPointDTO.md) | | [optional] [default to const []]
**iconResourceId** | **String** | | [optional]
**iconSource** | **String** | | [optional]
**categories** | [**List<CategorieDTO>**](CategorieDTO.md) | | [optional] [default to const []]
**centerLatitude** | **String** | | [optional]
**centerLongitude** | **String** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -1,14 +1,13 @@
# manager_api.model.VideoDTO # manager_api_new.model.MapDTOAllOfMapProvider
## Load the model package ## Load the model package
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
``` ```
## Properties ## Properties
Name | Type | Description | Notes Name | Type | Description | Notes
------------ | ------------- | ------------- | ------------- ------------ | ------------- | ------------- | -------------
**source_** | **String** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -1,14 +1,13 @@
# manager_api.model.PdfDTO # manager_api_new.model.MapDTOAllOfMapType
## Load the model package ## Load the model package
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
``` ```
## Properties ## Properties
Name | Type | Description | Notes Name | Type | Description | Notes
------------ | ------------- | ------------- | ------------- ------------ | ------------- | ------------- | -------------
**pdfs** | [**List<PDFFileDTO>**](PDFFileDTO.md) | | [optional] [default to const []]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -1,14 +1,13 @@
# manager_api.model.MenuDTO # manager_api_new.model.MapDTOAllOfMapTypeMapbox
## Load the model package ## Load the model package
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
``` ```
## Properties ## Properties
Name | Type | Description | Notes Name | Type | Description | Notes
------------ | ------------- | ------------- | ------------- ------------ | ------------- | ------------- | -------------
**sections** | [**List<SectionDTO>**](SectionDTO.md) | | [optional] [default to const []]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -1,8 +1,8 @@
# manager_api.model.MapDTOMapProvider # manager_api_new.model.MapDTOMapProvider
## Load the model package ## Load the model package
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
``` ```
## Properties ## Properties

View File

@ -1,8 +1,8 @@
# manager_api.model.MapDTOMapType # manager_api_new.model.MapDTOMapType
## Load the model package ## Load the model package
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
``` ```
## Properties ## Properties

View File

@ -1,8 +1,8 @@
# manager_api.model.MapDTOMapTypeMapbox # manager_api_new.model.MapDTOMapTypeMapbox
## Load the model package ## Load the model package
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
``` ```
## Properties ## Properties

View File

@ -1,8 +1,8 @@
# manager_api.model.MapProvider # manager_api_new.model.MapProvider
## Load the model package ## Load the model package
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
``` ```
## Properties ## Properties

View File

@ -1,8 +1,8 @@
# manager_api.model.MapTypeApp # manager_api_new.model.MapTypeApp
## Load the model package ## Load the model package
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
``` ```
## Properties ## Properties

View File

@ -1,8 +1,8 @@
# manager_api.model.MapTypeMapBox # manager_api_new.model.MapTypeMapBox
## Load the model package ## Load the model package
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
``` ```
## Properties ## Properties

View File

@ -0,0 +1,33 @@
# manager_api_new.model.MenuDTO
## Load the model package
```dart
import 'package:manager_api_new/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**id** | **String** | | [optional]
**label** | **String** | | [optional]
**title** | [**List<TranslationDTO>**](TranslationDTO.md) | | [optional] [default to const []]
**description** | [**List<TranslationDTO>**](TranslationDTO.md) | | [optional] [default to const []]
**imageId** | **String** | | [optional]
**imageSource** | **String** | | [optional]
**configurationId** | **String** | | [optional]
**isSubSection** | **bool** | | [optional]
**parentId** | **String** | | [optional]
**type** | [**SectionType**](SectionType.md) | | [optional]
**dateCreation** | [**DateTime**](DateTime.md) | | [optional]
**order** | **int** | | [optional]
**instanceId** | **String** | | [optional]
**latitude** | **String** | | [optional]
**longitude** | **String** | | [optional]
**meterZoneGPS** | **int** | | [optional]
**isBeacon** | **bool** | | [optional]
**beaconId** | **int** | | [optional]
**sections** | [**List<Object>**](Object.md) | | [optional] [default to const []]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -1,15 +1,15 @@
# manager_api.model.AgendaDTO # manager_api_new.model.OrderedTranslationAndResourceDTO
## Load the model package ## Load the model package
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
``` ```
## Properties ## Properties
Name | Type | Description | Notes Name | Type | Description | Notes
------------ | ------------- | ------------- | ------------- ------------ | ------------- | ------------- | -------------
**resourceIds** | [**List<TranslationDTO>**](TranslationDTO.md) | | [optional] [default to const []] **translationAndResourceDTOs** | [**List<TranslationAndResourceDTO>**](TranslationAndResourceDTO.md) | | [optional] [default to const []]
**mapProvider** | [**MapDTOMapProvider**](MapDTOMapProvider.md) | | [optional] **order** | **int** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -1,8 +1,8 @@
# manager_api.model.PDFFileDTO # manager_api_new.model.PDFFileDTO
## Load the model package ## Load the model package
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
``` ```
## Properties ## Properties

View File

@ -0,0 +1,33 @@
# manager_api_new.model.PdfDTO
## Load the model package
```dart
import 'package:manager_api_new/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**id** | **String** | | [optional]
**label** | **String** | | [optional]
**title** | [**List<TranslationDTO>**](TranslationDTO.md) | | [optional] [default to const []]
**description** | [**List<TranslationDTO>**](TranslationDTO.md) | | [optional] [default to const []]
**imageId** | **String** | | [optional]
**imageSource** | **String** | | [optional]
**configurationId** | **String** | | [optional]
**isSubSection** | **bool** | | [optional]
**parentId** | **String** | | [optional]
**type** | [**SectionType**](SectionType.md) | | [optional]
**dateCreation** | [**DateTime**](DateTime.md) | | [optional]
**order** | **int** | | [optional]
**instanceId** | **String** | | [optional]
**latitude** | **String** | | [optional]
**longitude** | **String** | | [optional]
**meterZoneGPS** | **int** | | [optional]
**isBeacon** | **bool** | | [optional]
**beaconId** | **int** | | [optional]
**pdfs** | [**List<OrderedTranslationAndResourceDTO>**](OrderedTranslationAndResourceDTO.md) | | [optional] [default to const []]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -1,8 +1,8 @@
# manager_api.model.PlayerMessageDTO # manager_api_new.model.PlayerMessageDTO
## Load the model package ## Load the model package
```dart ```dart
import 'package:manager_api/api.dart'; import 'package:manager_api_new/api.dart';
``` ```
## Properties ## Properties

Some files were not shown because too many files have changed in this diff Show More