Skip to content

Refactored so endpoint details are managed in-controller #1

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Oct 30, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions lib/controller/api_controller.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import '../service/endpoints.dart';

abstract class ApiController {
/// Get details of the endpoints within this controller.
EndpointControllerInfo info();

/// Placeholder endpoint function for not-yet-supported endpoints
Future<String> notImplemented() async{
return "THIS METHOD IS CURRENTLY NOT SUPPORTED";
}
}
15 changes: 14 additions & 1 deletion lib/controller/attachments.dart
Original file line number Diff line number Diff line change
@@ -1,8 +1,21 @@
import '../service/endpoints.dart';
import 'api_controller.dart';
import 'server_info.dart';
import 'package:http/http.dart' as http;
import 'dart:convert';

class Attachments {
class Attachments extends ApiController {

@override
EndpointControllerInfo info() {
return EndpointControllerInfo(label: 'Attachments', endpoints: {
'list': list,
'create': create,
'read': read,
'update': update,
'delete': delete,
});
}

Future<String> list() async{
print('Trying List');
Expand Down
19 changes: 18 additions & 1 deletion lib/controller/books.dart
Original file line number Diff line number Diff line change
@@ -1,8 +1,25 @@
import '../service/endpoints.dart';
import 'api_controller.dart';
import 'server_info.dart';
import 'package:http/http.dart' as http;
import 'dart:convert';

class Books {
class Books extends ApiController {

@override
EndpointControllerInfo info() {
return EndpointControllerInfo(label: 'Books', endpoints: {
'list': list,
'create': create,
'read': read,
'update': update,
'delete': delete,
'export-html': exportHtml,
'export-pdf': exportPdf,
'export-plain-text': exportPlain,
'export-markdown': exportMarkdown,
});
}

Future<String> list() async{
print('Trying List');
Expand Down
23 changes: 20 additions & 3 deletions lib/controller/chapters.dart
Original file line number Diff line number Diff line change
@@ -1,11 +1,28 @@
import '../service/endpoints.dart';
import 'api_controller.dart';
import 'server_info.dart';
import 'package:http/http.dart' as http;
import 'dart:convert';

class Chapters {
class Chapters extends ApiController {

@override
EndpointControllerInfo info() {
return EndpointControllerInfo(label: 'Chapters', endpoints: {
'list': list,
'create': create,
'read': read,
'update': update,
'delete': delete,
'export-html': exportHtml,
'export-pdf': exportPdf,
'export-plain-text': exportPlain,
'export-markdown': exportMarkdown,
});
}

Future<String> list() async{
String url = '$urlFull/api/image-gallery';
String url = '$urlFull/api/chapters';
var response = await http.get(Uri.parse(url), headers: headers);

return response.body;
Expand Down Expand Up @@ -109,4 +126,4 @@ class Chapters {
return response.body;
}

}
}
13 changes: 11 additions & 2 deletions lib/controller/content_permissions.dart
Original file line number Diff line number Diff line change
@@ -1,8 +1,17 @@
import '../service/endpoints.dart';
import 'api_controller.dart';
import 'server_info.dart';
import 'package:http/http.dart' as http;
import 'dart:convert';

class ContentPermissions {
class ContentPermissions extends ApiController {

@override
EndpointControllerInfo info() {
return EndpointControllerInfo(label: 'Content Permissions', endpoints: {
'read': read,
'update': notImplemented,
});
}

Future<String> read() async{
String contentType = 'page';
Expand Down
18 changes: 14 additions & 4 deletions lib/controller/image_gallery.dart
Original file line number Diff line number Diff line change
@@ -1,11 +1,21 @@
import '../service/endpoints.dart';
import 'api_controller.dart';
import 'server_info.dart';
import 'package:http/http.dart' as http;
import 'dart:convert';
import 'dart:io';

import 'package:http_parser/http_parser.dart';

class image_gallery {
class ImageGallery extends ApiController {

@override
EndpointControllerInfo info() {
return EndpointControllerInfo(label: 'Image Gallery', endpoints: {
'list': list,
'create': create,
'read': read,
'update': update,
'delete': delete,
});
}

Future<String> list() async{
String url = '$urlFull/api/image-gallery';
Expand Down
187 changes: 0 additions & 187 deletions lib/controller/methodshandler.dart

This file was deleted.

19 changes: 18 additions & 1 deletion lib/controller/pages.dart
Original file line number Diff line number Diff line change
@@ -1,8 +1,25 @@
import '../service/endpoints.dart';
import 'api_controller.dart';
import 'server_info.dart';
import 'package:http/http.dart' as http;
import 'dart:convert';

class Pages {
class Pages extends ApiController {

@override
EndpointControllerInfo info() {
return EndpointControllerInfo(label: 'Pages', endpoints: {
'list': list,
'create': create,
'read': read,
'update': update,
'delete': delete,
'export-html': exportHtml,
'export-pdf': exportPdf,
'export-plain-text': exportPlain,
'export-markdown': exportMarkdown,
});
}

Future<String> list() async{
String url = '$urlFull/api/pages';
Expand Down
23 changes: 12 additions & 11 deletions lib/controller/reycle_bin.dart
Original file line number Diff line number Diff line change
@@ -1,8 +1,18 @@
import '../service/endpoints.dart';
import 'api_controller.dart';
import 'server_info.dart';
import 'package:http/http.dart' as http;
import 'dart:convert';

class RecycleBin {
class RecycleBin extends ApiController {

@override
EndpointControllerInfo info() {
return EndpointControllerInfo(label: 'Recycle Bin', endpoints: {
'list': list,
'restore': notImplemented,
'destroy': destroy,
});
}

Future<String> list() async{
print('Trying List');
Expand All @@ -12,15 +22,6 @@ class RecycleBin {
return response.body;
}

Future<String> restore() async{

String deletionID= '121';

String url = '$urlFull/api/recycle-bin/$deletionID';
var response = await http.get(Uri.parse(url), headers: headers);
return response.body;
}


Future<String> destroy() async{

Expand Down
Loading