Skip to content

Commit 4305e2b

Browse files
More Changes
Signed-off-by: SebastianKrupinski <[email protected]>
1 parent 39e8ea9 commit 4305e2b

File tree

135 files changed

+6795
-4828
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

135 files changed

+6795
-4828
lines changed

appinfo/info.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,10 @@
4444
</settings>
4545
<sabre>
4646
<address-book-plugins>
47-
<plugin>OCA\JMAPC\Providers\Contacts\Provider</plugin>
47+
<plugin>OCA\JMAPC\Providers\DAV\Contacts\Provider</plugin>
4848
</address-book-plugins>
4949
<calendar-plugins>
50-
<plugin>OCA\JMAPC\Providers\Calendar\Provider</plugin>
50+
<plugin>OCA\JMAPC\Providers\DAV\Calendar\Provider</plugin>
5151
</calendar-plugins>
5252
</sabre>
5353
</info>

appinfo/routes.php

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,5 @@
2626
return [
2727
'routes' => [
2828
['name' => 'AdminConfiguration#depositConfiguration', 'url' => '/admin-configuration', 'verb' => 'PUT'],
29-
//['name' => 'UserConfiguration#Connect', 'url' => '/connect', 'verb' => 'GET'],
30-
//['name' => 'UserConfiguration#Disconnect', 'url' => '/disconnect', 'verb' => 'GET'],
31-
//['name' => 'UserConfiguration#Harmonize', 'url' => '/harmonize', 'verb' => 'GET'],
32-
//['name' => 'UserConfiguration#serviceList', 'url' => '/service-list', 'verb' => 'GET'],
33-
//['name' => 'UserConfiguration#remoteCollectionsFetch', 'url' => '/remote-collections-fetch', 'verb' => 'GET'],
34-
//['name' => 'UserConfiguration#localCollectionsFetch', 'url' => '/local-collections-fetch', 'verb' => 'GET'],
35-
//['name' => 'UserConfiguration#localCollectionsDeposit', 'url' => '/local-collections-deposit', 'verb' => 'PUT'],
3629
]
3730
];

js/integration_jmapc-userSettings.js

Lines changed: 246 additions & 108 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/integration_jmapc-userSettings.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/AppInfo/Application.php

Lines changed: 7 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
<?php
2+
declare(strict_types=1);
23
/**
34
* @copyright Copyright (c) 2023 Sebastian Krupinski <[email protected]>
45
*
@@ -20,47 +21,19 @@
2021
* along with this program. If not, see <http://www.gnu.org/licenses/>.
2122
*
2223
*/
23-
24-
declare(strict_types=1);
25-
2624
namespace OCA\JMAPC\AppInfo;
2725

28-
use OCP\IConfig;
2926
use OCP\AppFramework\App;
3027
use OCP\AppFramework\Bootstrap\IRegistrationContext;
3128
use OCP\AppFramework\Bootstrap\IBootContext;
3229
use OCP\AppFramework\Bootstrap\IBootstrap;
33-
use OCA\DAV\Events\AddressBookDeletedEvent;
34-
use OCA\DAV\Events\CardCreatedEvent;
35-
use OCA\DAV\Events\CardDeletedEvent;
36-
use OCA\DAV\Events\CardUpdatedEvent;
37-
use OCA\DAV\Events\CalendarDeletedEvent;
38-
use OCA\DAV\Events\CalendarObjectCreatedEvent;
39-
use OCA\DAV\Events\CalendarObjectDeletedEvent;
40-
use OCA\DAV\Events\CalendarObjectUpdatedEvent;
41-
use OCA\DAV\Events\CalendarObjectMovedEvent;
42-
use OCA\DAV\Events\CalendarObjectMovedToTrashEvent;
43-
use OCA\DAV\Events\CalendarObjectRestoredEvent;
4430
use OCP\EventDispatcher\IEventDispatcher;
4531
use OCP\Notification\IManager as INotificationManager;
4632
use OCP\User\Events\UserDeletedEvent;
4733

48-
use OCA\JMAPC\Capabilities;
49-
use OCA\JMAPC\Events\AddressBookDeletedListener;
50-
use OCA\JMAPC\Events\CardCreatedListener;
51-
use OCA\JMAPC\Events\CardUpdatedListener;
52-
use OCA\JMAPC\Events\CardDeletedListener;
53-
use OCA\JMAPC\Events\CalendarDeletedListener;
54-
use OCA\JMAPC\Events\CalendarObjectCreatedListener;
55-
use OCA\JMAPC\Events\CalendarObjectUpdatedListener;
56-
use OCA\JMAPC\Events\CalendarObjectDeletedListener;
57-
use OCA\JMAPC\Events\CalendarObjectMovedListener;
58-
use OCA\JMAPC\Events\CalendarObjectMovedToTrashListener;
59-
use OCA\JMAPC\Events\CalendarObjectRestoredListener;
6034
use OCA\JMAPC\Events\UserDeletedListener;
6135
use OCA\JMAPC\Notification\Notifier;
6236

63-
use OCA\JMAPC\Providers\Calendar\Provider;
6437
use OCA\JMAPC\Providers\Mail\Provider as MailProvider;
6538

6639
/**
@@ -71,6 +44,8 @@
7144
class Application extends App implements IBootstrap {
7245
// assign application identification
7346
public const APP_ID = 'integration_jmapc';
47+
public const APP_TAG = 'JMAPC';
48+
public const APP_LABEL = 'JMAP Client';
7449

7550
public function __construct(array $urlParams = []) {
7651
if ((@include_once __DIR__ . '/../../vendor/autoload.php') === false) {
@@ -83,47 +58,15 @@ public function __construct(array $urlParams = []) {
8358

8459
public function register(IRegistrationContext $context): void {
8560

86-
$context->registerCapability(Capabilities::class);
87-
88-
// retrieve harmonization mode
89-
//$mode = \OC::$server->getConfig()->getAppValue(Application::APP_ID, 'harmonization_mode');
90-
//$contacts = \OC::$server->getConfig()->getAppValue('contacts', 'enabled');
91-
//$calendar = \OC::$server->getConfig()->getAppValue('calendar', 'enabled');
9261
// register notifications
93-
//$manager = $this->getContainer()->get(INotificationManager::class);
94-
//$manager->registerNotifierService(Notifier::class);
95-
/*
62+
$manager = $this->getContainer()->get(INotificationManager::class);
63+
$manager->registerNotifierService(Notifier::class);
64+
9665
// register event handlers
9766
$dispatcher = $this->getContainer()->get(IEventDispatcher::class);
9867
$dispatcher->addServiceListener(UserDeletedEvent::class, UserDeletedListener::class);
9968

100-
if ($contacts == 'yes') {
101-
$dispatcher->addServiceListener(AddressBookDeletedEvent::class, AddressBookDeletedListener::class);
102-
// evaluate harmonization mode, and only register if set to active
103-
if ($mode == 'A') {
104-
$dispatcher->addServiceListener(CardCreatedEvent::class, CardCreatedListener::class);
105-
$dispatcher->addServiceListener(CardUpdatedEvent::class, CardUpdatedListener::class);
106-
$dispatcher->addServiceListener(CardDeletedEvent::class, CardDeletedListener::class);
107-
}
108-
}
109-
110-
if ($calendar == 'yes') {
111-
$dispatcher->addServiceListener(CalendarDeletedEvent::class, CalendarDeletedListener::class);
112-
// evaluate harmonization mode, and only register if set to active
113-
if ($mode == 'A') {
114-
$dispatcher->addServiceListener(CalendarObjectCreatedEvent::class, CalendarObjectCreatedListener::class);
115-
$dispatcher->addServiceListener(CalendarObjectUpdatedEvent::class, CalendarObjectUpdatedListener::class);
116-
$dispatcher->addServiceListener(CalendarObjectDeletedEvent::class, CalendarObjectDeletedListener::class);
117-
$dispatcher->addServiceListener(CalendarObjectMovedEvent::class, CalendarObjectMovedListener::class);
118-
$dispatcher->addServiceListener(CalendarObjectMovedToTrashEvent::class, CalendarObjectMovedToTrashListener::class);
119-
$dispatcher->addServiceListener(CalendarObjectRestoredEvent::class, CalendarObjectRestoredListener::class);
120-
}
121-
}
122-
*/
123-
124-
// evaluate, if mail provider registration is possible
125-
if (method_exists($context, 'registerMailProvider')) {
126-
// register mail provider
69+
if (method_exists($context, 'registerMailProvider')) {
12770
$context->registerMailProvider(MailProvider::class);
12871
}
12972
}

lib/Capabilities.php

Lines changed: 0 additions & 32 deletions
This file was deleted.

lib/Commands/Connect.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?php
2-
//declare(strict_types=1);
2+
declare(strict_types=1);
33

44
/**
55
* @copyright Copyright (c) 2023 Sebastian Krupinski <[email protected]>

lib/Commands/Disconnect.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?php
2-
//declare(strict_types=1);
2+
declare(strict_types=1);
33

44
/**
55
* @copyright Copyright (c) 2023 Sebastian Krupinski <[email protected]>

lib/Commands/Harmonize.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?php
2-
//declare(strict_types=1);
2+
declare(strict_types=1);
33

44
/**
55
* @copyright Copyright (c) 2023 Sebastian Krupinski <[email protected]>

lib/Controller/UserConfigurationController.php

Lines changed: 42 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -57,20 +57,19 @@ public function __construct(
5757
* @return DataResponse
5858
*/
5959
#[NoAdminRequired]
60-
#[FrontpageRoute(verb: 'GET', url: '/service-list')]
60+
#[FrontpageRoute(verb: 'GET', url: '/service/list')]
6161
public function serviceList(): DataResponse {
6262

6363
// evaluate if user id is present
6464
if ($this->userId === null) {
6565
return new DataResponse([], Http::STATUS_BAD_REQUEST);
6666
}
6767
// retrieve services
68-
$rs = $this->ServicesService->fetchByUserId($this->userId);
69-
// return response
70-
if (isset($rs)) {
68+
try {
69+
$rs = $this->ServicesService->fetchByUserId($this->userId);
7170
return new DataResponse($rs);
72-
} else {
73-
return new DataResponse($rs['error'], 401);
71+
} catch (\Throwable $th) {
72+
return new DataResponse($th->getMessage(), Http::STATUS_INTERNAL_SERVER_ERROR);
7473
}
7574

7675
}
@@ -83,7 +82,7 @@ public function serviceList(): DataResponse {
8382
* @return DataResponse
8483
*/
8584
#[NoAdminRequired]
86-
#[FrontpageRoute(verb: 'GET', url: '/connect')]
85+
#[FrontpageRoute(verb: 'POST', url: '/service/connect')]
8786
public function Connect(array $service): DataResponse {
8887

8988
// evaluate if user id is present
@@ -93,14 +92,13 @@ public function Connect(array $service): DataResponse {
9392
// assign options
9493
$options = ['VALIDATE'];
9594
// execute command
96-
$rs = $this->CoreService->connectAccount($this->userId, $service, $options);
97-
// return response
98-
if (isset($rs)) {
95+
try {
96+
$rs = $this->CoreService->connectAccount($this->userId, $service, $options);
9997
return new DataResponse('success');
100-
} else {
101-
return new DataResponse($rs['error'], 401);
98+
} catch (\Throwable $th) {
99+
return new DataResponse($th->getMessage(), Http::STATUS_INTERNAL_SERVER_ERROR);
102100
}
103-
101+
104102
}
105103

106104
/**
@@ -111,17 +109,20 @@ public function Connect(array $service): DataResponse {
111109
* @return DataResponse
112110
*/
113111
#[NoAdminRequired]
114-
#[FrontpageRoute(verb: 'GET', url: '/disconnect')]
112+
#[FrontpageRoute(verb: 'POST', url: '/service/disconnect')]
115113
public function Disconnect(int $sid): DataResponse {
116114

117115
// evaluate if user id is present
118116
if ($this->userId === null) {
119117
return new DataResponse([], Http::STATUS_BAD_REQUEST);
120118
}
121119
// execute command
122-
$this->CoreService->disconnectAccount($this->userId, $sid);
123-
// return response
124-
return new DataResponse('success');
120+
try {
121+
$this->CoreService->disconnectAccount($this->userId, $sid);
122+
return new DataResponse('success');
123+
} catch (\Throwable $th) {
124+
return new DataResponse($th->getMessage(), Http::STATUS_INTERNAL_SERVER_ERROR);
125+
}
125126

126127
}
127128

@@ -133,17 +134,20 @@ public function Disconnect(int $sid): DataResponse {
133134
* @return DataResponse
134135
*/
135136
#[NoAdminRequired]
136-
#[FrontpageRoute(verb: 'GET', url: '/harmonize')]
137+
#[FrontpageRoute(verb: 'POST', url: '/service/harmonize')]
137138
public function Harmonize(int $sid): DataResponse {
138139

139140
// evaluate if user id is present
140141
if ($this->userId === null) {
141142
return new DataResponse([], Http::STATUS_BAD_REQUEST);
142143
}
143144
// execute command
144-
$this->HarmonizationService->performHarmonization($this->userId, $sid, 'M');
145-
// return response
146-
return new DataResponse('success');
145+
try {
146+
$this->HarmonizationService->performHarmonization($this->userId, $sid, 'M');
147+
return new DataResponse('success');
148+
} catch (\Throwable $th) {
149+
return new DataResponse($th->getMessage(), Http::STATUS_INTERNAL_SERVER_ERROR);
150+
}
147151

148152
}
149153

@@ -155,23 +159,20 @@ public function Harmonize(int $sid): DataResponse {
155159
* @return DataResponse
156160
*/
157161
#[NoAdminRequired]
158-
#[FrontpageRoute(verb: 'GET', url: '/remote-collections-fetch')]
162+
#[FrontpageRoute(verb: 'GET', url: '/remote/collections/fetch')]
159163
public function remoteCollectionsFetch(int $sid): DataResponse {
160164

161165
// evaluate if user id is present
162166
if ($this->userId === null) {
163167
return new DataResponse([], Http::STATUS_BAD_REQUEST);
164168
}
165169
// retrieve collections
166-
$rs = $this->CoreService->remoteCollectionsFetch($this->userId, $sid);
167-
// return response
168-
if (isset($rs)) {
170+
try {
171+
$rs = $this->CoreService->remoteCollectionsFetch($this->userId, $sid);
169172
return new DataResponse($rs);
170-
} else {
171-
172-
return new DataResponse($rs['error'], 401);
173+
} catch (\Throwable $th) {
174+
return new DataResponse($th->getMessage(), Http::STATUS_INTERNAL_SERVER_ERROR);
173175
}
174-
175176
}
176177

177178
/**
@@ -182,21 +183,19 @@ public function remoteCollectionsFetch(int $sid): DataResponse {
182183
* @return DataResponse
183184
*/
184185
#[NoAdminRequired]
185-
#[FrontpageRoute(verb: 'GET', url: '/local-collections-fetch')]
186+
#[FrontpageRoute(verb: 'GET', url: '/local/collections/fetch')]
186187
public function localCollectionsFetch(int $sid): DataResponse {
187188

188189
// evaluate if user id is present
189190
if ($this->userId === null) {
190191
return new DataResponse([], Http::STATUS_BAD_REQUEST);
191192
}
192193
// retrieve collections
193-
$rs = $this->CoreService->localCollectionsFetch($this->userId, $sid);
194-
// return response
195-
if (isset($rs)) {
194+
try {
195+
$rs = $this->CoreService->localCollectionsFetch($this->userId, $sid);
196196
return new DataResponse($rs);
197-
} else {
198-
199-
return new DataResponse($rs['error'], 401);
197+
} catch (\Throwable $th) {
198+
return new DataResponse($th->getMessage(), Http::STATUS_INTERNAL_SERVER_ERROR);
200199
}
201200

202201
}
@@ -209,17 +208,20 @@ public function localCollectionsFetch(int $sid): DataResponse {
209208
* @return DataResponse
210209
*/
211210
#[NoAdminRequired]
212-
#[FrontpageRoute(verb: 'PUT', url: '/local-collections-deposit')]
211+
#[FrontpageRoute(verb: 'POST', url: '/local/collections/deposit')]
213212
public function localCollectionsDeposit(int $sid, array $ContactCorrelations, array $EventCorrelations, array $TaskCorrelations): DataResponse {
214213

215214
// evaluate if user id is present
216215
if ($this->userId === null) {
217216
return new DataResponse([], Http::STATUS_BAD_REQUEST);
218217
}
219218
// execute command
220-
$rs = $this->CoreService->depositCorrelations($this->userId, $sid, $ContactCorrelations, $EventCorrelations, $TaskCorrelations);
221-
// return response
222-
return $this->localCollectionsFetch($sid);
219+
try {
220+
$rs = $this->CoreService->localCollectionsDeposit($this->userId, $sid, $ContactCorrelations, $EventCorrelations, $TaskCorrelations);
221+
return $this->localCollectionsFetch($sid);
222+
} catch (\Throwable $th) {
223+
return new DataResponse($th->getMessage(), Http::STATUS_INTERNAL_SERVER_ERROR);
224+
}
223225

224226
}
225227

0 commit comments

Comments
 (0)