-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.dart
More file actions
executable file
·88 lines (86 loc) · 2.99 KB
/
server.dart
File metadata and controls
executable file
·88 lines (86 loc) · 2.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
import 'dart:io';
import 'dart:convert';
import 'package:http_server/http_server.dart';
import 'package:skydev/database.dart';
import 'package:skydev/console.dart';
import 'package:skydev/chat.dart';
import 'package:skydev/editor.dart';
import 'package:skydev/serverHandleProfilePage.dart';
import 'package:skydev/serverHandleLogin.dart';
import 'package:skydev/serverHandleRegistration.dart';
import 'package:skydev/serverHandleLogout.dart';
import 'package:skydev/serverHandleCookies.dart';
import 'package:skydev/serverHandlePPUpload.dart';
import 'package:skydev/api.dart';
main() async {
await db_gateway.connect();
var requestServer = await HttpServer.bind(InternetAddress.ANY_IP_V4, 8081);
print('listening on http://${requestServer.address.host}:${requestServer.port}');
await for (HttpRequest request in requestServer) {
final String _buildPath = Platform.script.resolve('build/web/').toFilePath();
final VirtualDirectory _clientDir = new VirtualDirectory(_buildPath);
if (request.uri.path == '/') {
if(await handleCookies(request)){
request.response.redirect(Uri.parse('index.html'));
}
else{
request.response.redirect(Uri.parse('login.html'));
}
} else if (request.uri.path == '/profile'){
if(request.method == 'POST'){
handleProfilePage(request);
}
else{
if(await handleCookies(request)){
request.response.redirect(Uri.parse('profilePage.html'));
}
else{
request.response.redirect(Uri.parse('login.html'));
}
}
} else if (request.uri.path == '/ws') {
editorSocketSetup(request);
} else if (request.uri.path == '/chat') {
chatSocketSetup(request);
}else if (request.uri.path == '/console') {
consoleSocketSetup(request);
}else if (request.uri.path == '/login') {
if (request.method == 'POST') {
handleLogin(request);
} else {
if(await handleCookies(request)){
request.response.redirect(Uri.parse('index.html'));
}
else{
request.response.redirect(Uri.parse('login.html'));
}
}
} else if (request.uri.path == '/logout'){
handleLogout(request);
} else if (request.uri.path == '/register') {
if (request.method == 'POST') {
handleRegister(request);
} else {
request.response.redirect(Uri.parse('registration.html'));
}
} else if (request.uri.path == '/api/users') {
getAllUsers(request);
} else if (request.uri.path == '/api/online') {
getOnlineUsers(request);
} else if (request.uri.path == '/api/username') {
getUsernameFromSession(request);
} else if (request.uri.path == '/api/email') {
getEmailFromSession(request);
} else if (request.uri.path == '/api/profilePic'){
getProfilePictureFromSession(request);
} else if (request.uri.path == '/uploadPic'){
handlePPUpload(request);
} else if (request.uri.path == '/api/files') {
getFilesDirectory(request);
} else {
var fileUri = new Uri.file(_buildPath).resolve(request.uri.path.substring(1));
_clientDir.serveFile(new File(fileUri.toFilePath()), request);
}
}
await db_gateway.disconnect();
}