Skip to content
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

feat: add notion of addressbooks #3749

Merged
merged 50 commits into from
Dec 15, 2020
Merged
Show file tree
Hide file tree
Changes from 42 commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
1836146
Add notion of addressbooks
asbiin Mar 26, 2020
cfbd9ae
fixes
asbiin Mar 26, 2020
974c51d
Apply fixes from StyleCI
asbiin Mar 26, 2020
d3f6cb3
fix this
asbiin Mar 26, 2020
6aa31d8
Merge branch 'master' into 2020-03-26-addressbooks
asbiin Mar 27, 2020
e18e49d
Merge branch 'master' into 2020-03-26-addressbooks
asbiin Mar 29, 2020
20a2fa5
Apply fixes from StyleCI
asbiin Mar 29, 2020
c331cd3
Merge remote-tracking branch 'origin/master' into 2020-03-26-addressb…
asbiin Apr 1, 2020
59c1db8
Merge remote-tracking branch 'origin/master' into 2020-03-26-addressb…
asbiin Apr 7, 2020
bf19272
Merge remote-tracking branch 'origin/master' into 2020-03-26-addressb…
asbiin Apr 13, 2020
10d57b1
add addressBookContacts function
asbiin Apr 14, 2020
e6bf337
Apply fixes from StyleCI
asbiin Apr 14, 2020
9125c17
fixes
asbiin Apr 14, 2020
0998cc4
fix searches
asbiin Apr 14, 2020
65637fb
Apply fixes from StyleCI
asbiin Apr 14, 2020
f865f99
fixes
asbiin Apr 14, 2020
3442e72
Merge branch '2020-03-26-addressbooks' of github.com:monicahq/monica …
asbiin Apr 14, 2020
2929fda
change id column name
asbiin Apr 14, 2020
1d122a1
change address book name column
asbiin Apr 14, 2020
4c40ff7
fix search
asbiin Apr 15, 2020
9972f23
Update CardDAVBackend.php
asbiin Apr 16, 2020
64d38e0
change address book name parameter
asbiin Apr 16, 2020
6c1f71b
Merge remote-tracking branch 'origin/master' into 2020-03-26-addressb…
asbiin Apr 16, 2020
ebf69fe
fixes
asbiin Apr 16, 2020
ef985af
fix
asbiin Apr 17, 2020
ab5cb71
fix search
asbiin Apr 17, 2020
73443b5
Apply fixes from StyleCI
asbiin Apr 17, 2020
c92976a
Merge remote-tracking branch 'origin/master' into 2020-03-26-addressb…
asbiin Apr 17, 2020
d64d7af
Merge remote-tracking branch 'origin/master' into 2020-03-26-addressb…
asbiin Apr 19, 2020
30bb327
fix
asbiin Apr 19, 2020
5a96480
update
asbiin Apr 19, 2020
725f897
fix
asbiin Apr 19, 2020
348e060
Merge remote-tracking branch 'origin/master' into 2020-03-26-addressb…
asbiin Apr 19, 2020
7822775
fix ctag
asbiin Apr 19, 2020
ea2134d
remove refresh
asbiin Apr 19, 2020
bcac85e
Apply fixes from StyleCI
asbiin Apr 19, 2020
e115d5f
Merge remote-tracking branch 'origin/master' into 2020-03-26-addressb…
asbiin Apr 20, 2020
0fe9724
fix test
asbiin Apr 20, 2020
92b3fa8
consistency
asbiin Apr 21, 2020
843f721
Merge remote-tracking branch 'origin/master' into 2020-03-26-addressb…
asbiin Apr 21, 2020
c2d1690
Merge branch 'master' into 2020-03-26-addressbooks
asbiin Apr 22, 2020
72543ff
Merge branch 'master' into 2020-03-26-addressbooks
asbiin Apr 23, 2020
d865c7e
Update app/Models/Contact/Contact.php
asbiin Apr 24, 2020
b08b698
Resolve comments
asbiin Apr 24, 2020
7b4ad6c
Merge remote-tracking branch 'origin/master' into 2020-03-26-addressb…
asbiin Dec 7, 2020
08a953b
fixes
asbiin Dec 7, 2020
f5e89dc
Apply fixes from StyleCI
asbiin Dec 7, 2020
b899132
rename function
asbiin Dec 7, 2020
2aef414
Merge branch '2020-03-26-addressbooks' of github.com:monicahq/monica …
asbiin Dec 7, 2020
8772b55
renames
asbiin Dec 8, 2020
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
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

### New features:

* Add the notion of AddressBooks
* Add Japanese langage
* Change title of birthday reminder for deceased people

Expand Down
7 changes: 5 additions & 2 deletions app/Helpers/SearchHelper.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,10 @@ class SearchHelper
* @param string $needle
* @param string $orderByColumn
* @param string $orderByDirection
* @param string|null $addressBookName
* @return Builder
*/
public static function searchContacts(string $needle, string $orderByColumn, string $orderByDirection = 'asc'): Builder
public static function searchContacts(string $needle, string $orderByColumn, string $orderByDirection = 'asc', string $addressBookName = null): Builder
{
$accountId = Auth::user()->account_id;

Expand All @@ -39,9 +40,11 @@ public static function searchContacts(string $needle, string $orderByColumn, str
['contact_field_type_id', $field_id],
]);
})
->addressBook($accountId, $addressBookName)
->orderBy($orderByColumn, $orderByDirection);
}

return Contact::search($needle, $accountId, $orderByColumn, $orderByDirection);
return Contact::search($needle, $accountId, $orderByColumn, $orderByDirection)
->addressBook($accountId, $addressBookName);
}
}
3 changes: 1 addition & 2 deletions app/Http/Controllers/Api/ApiContactController.php
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,7 @@ public function index(Request $request)
}

try {
$contacts = auth()->user()->account->contacts()
->real()
$contacts = auth()->user()->account->addressBookContacts()
->active()
->orderBy($this->sort, $this->sortDirection)
->paginate($this->getLimitPerPage());
Expand Down
3 changes: 1 addition & 2 deletions app/Http/Controllers/Api/ApiTagController.php
Original file line number Diff line number Diff line change
Expand Up @@ -144,8 +144,7 @@ public function destroy(Request $request, $id)
public function contacts(Request $request, int $tagId)
{
try {
$contacts = auth()->user()->account->contacts()
->real()
$contacts = auth()->user()->account->addressBookContacts()
->active()
->whereHas('tags', function (Builder $query) use ($tagId) {
$query->where('id', $tagId);
Expand Down
7 changes: 3 additions & 4 deletions app/Http/Controllers/Contacts/IntroductionsController.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,9 @@ class IntroductionsController extends Controller
*/
public function edit(Contact $contact)
{
$contacts = auth()->user()->account->contacts()
->real()
->active()
->get();
$contacts = $contact->addressBookContacts()
->active()
->get();

return view('people.introductions.edit')
->withContact($contact)
Expand Down
8 changes: 4 additions & 4 deletions app/Http/Controllers/ContactsController.php
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ private function contacts(Request $request, bool $active)
]);
}

$contacts = $user->account->contacts()->real();
$contacts = $user->account->addressBookContacts();
if ($active) {
$archived = (clone $contacts)->notActive();
$contacts = (clone $contacts)->active();
Expand Down Expand Up @@ -674,13 +674,13 @@ public function list(Request $request)
$url = '';
$count = 1;

$contacts = $user->account->contacts()->real();
$addressBook = $user->account->addressBookContacts();

// filter out archived contacts if necessary
if ($request->input('show_archived') != 'true') {
$contacts = $contacts->active();
$contacts = $addressBook->active();
} else {
$contacts = $contacts->notActive();
$contacts = $addressBook->notActive();
}

// filter out deceased if necessary
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ abstract class AbstractCalDAVBackend implements ICalDAVBackend, IDAVBackend

public function getDescription()
{
$token = DAVSyncPlugin::SYNCTOKEN_PREFIX.$this->refreshSyncToken()->id;
$token = DAVSyncPlugin::SYNCTOKEN_PREFIX.$this->refreshSyncToken(null)->id;
$des = [
'id' => $this->backendUri(),
'uri' => $this->backendUri(),
Expand Down
8 changes: 4 additions & 4 deletions app/Http/Controllers/DAV/Backend/CalDAV/CalDAVBackend.php
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ public function getChangesForCalendar($calendarId, $syncToken, $syncLevel, $limi
{
$backend = $this->getBackend($calendarId);
if ($backend) {
return $backend->getChanges($syncToken);
return $backend->getChanges($calendarId, $syncToken);
}

return [];
Expand Down Expand Up @@ -166,7 +166,7 @@ public function getCalendarObjects($calendarId)
{
$backend = $this->getBackend($calendarId);
if ($backend) {
$objs = $backend->getObjects();
$objs = $backend->getObjects($calendarId);

return $objs
->map(function ($date) use ($backend) {
Expand Down Expand Up @@ -201,7 +201,7 @@ public function getCalendarObject($calendarId, $objectUri)
{
$backend = $this->getBackend($calendarId);
if ($backend) {
$obj = $backend->getObject($objectUri);
$obj = $backend->getObject($calendarId, $objectUri);

if ($obj) {
return $backend->prepareData($obj);
Expand Down Expand Up @@ -257,7 +257,7 @@ public function updateCalendarObject($calendarId, $objectUri, $calendarData): ?s
$backend = $this->getBackend($calendarId);

return $backend ?
$backend->updateOrCreateCalendarObject($objectUri, $calendarData)
$backend->updateOrCreateCalendarObject($calendarId, $objectUri, $calendarData)
: null;
}

Expand Down
12 changes: 6 additions & 6 deletions app/Http/Controllers/DAV/Backend/CalDAV/CalDAVBirthdays.php
Original file line number Diff line number Diff line change
Expand Up @@ -95,10 +95,11 @@ private function hasBirthday($contact)
/**
* Returns the date for the specific uuid.
*
* @param string|null $collectionId
* @param string $uuid
* @return mixed
*/
public function getObjectUuid($uuid)
public function getObjectUuid($collectionId, $uuid)
{
return SpecialDate::where([
'account_id' => Auth::user()->account_id,
Expand All @@ -111,11 +112,10 @@ public function getObjectUuid($uuid)
*
* @return \Illuminate\Support\Collection
*/
public function getObjects()
public function getObjects($collectionId)
{
$contacts = Auth::user()->account
->contacts()
->real()
// We only return the birthday of default addressBook
$contacts = Auth::user()->account->addressBookContacts()
->active()
->get();

Expand All @@ -130,7 +130,7 @@ public function getObjects()
/**
* @return string|null
*/
public function updateOrCreateCalendarObject($objectUri, $calendarData): ?string
public function updateOrCreateCalendarObject($calendarId, $objectUri, $calendarData): ?string
{
return null;
}
Expand Down
11 changes: 6 additions & 5 deletions app/Http/Controllers/DAV/Backend/CalDAV/CalDAVTasks.php
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ public function getDescription()
*
* @return \Illuminate\Support\Collection
*/
public function getObjects()
public function getObjects($collectionId)
{
return Auth::user()->account
->tasks()
Expand All @@ -52,10 +52,11 @@ public function getObjects()
/**
* Returns the contact for the specific uuid.
*
* @param mixed|null $collectionId
* @param string $uuid
* @return mixed
*/
public function getObjectUuid($uuid)
public function getObjectUuid($collectionId, $uuid)
{
return Task::where([
'account_id' => Auth::user()->account_id,
Expand Down Expand Up @@ -123,11 +124,11 @@ public function prepareData($task)
* @param string $calendarData
* @return string|null
*/
public function updateOrCreateCalendarObject($objectUri, $calendarData): ?string
public function updateOrCreateCalendarObject($calendarId, $objectUri, $calendarData): ?string
{
$task_id = null;
if ($objectUri) {
$task = $this->getObject($objectUri);
$task = $this->getObject($this->backendUri(), $objectUri);

if ($task) {
$task_id = $task->id;
Expand Down Expand Up @@ -167,7 +168,7 @@ public function updateOrCreateCalendarObject($objectUri, $calendarData): ?string
*/
public function deleteCalendarObject($objectUri)
{
$task = $this->getObject($objectUri);
$task = $this->getObject($this->backendUri(), $objectUri);

if ($task) {
try {
Expand Down
6 changes: 4 additions & 2 deletions app/Http/Controllers/DAV/Backend/CalDAV/ICalDAVBackend.php
Original file line number Diff line number Diff line change
Expand Up @@ -55,10 +55,11 @@ public function getDescription();
* The getChanges method returns all the changes that have happened, since
* the specified syncToken in the specified calendar.
*
* @param string|null $calendarId
* @param string $syncToken
* @return array
*/
public function getChanges($syncToken);
public function getChanges($calendarId, $syncToken);

/**
* Returns calendar object.
Expand Down Expand Up @@ -98,11 +99,12 @@ public function prepareData($obj);
* calendar-data. If the result of a subsequent GET to this object is not
* the exact same as this request body, you should omit the ETag.
*
* @param string|null $calendarId
* @param string $objectUri
* @param string $calendarData
* @return string|null
*/
public function updateOrCreateCalendarObject($objectUri, $calendarData): ?string;
public function updateOrCreateCalendarObject($calendarId, $objectUri, $calendarData): ?string;

/**
* Deletes an existing calendar object.
Expand Down
4 changes: 2 additions & 2 deletions app/Http/Controllers/DAV/Backend/CardDAV/AddressBook.php
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ public function getLastModified(): ?int
{
$carddavBackend = $this->carddavBackend;
if ($carddavBackend instanceof CardDAVBackend) {
$date = $carddavBackend->getLastModified();
$date = $carddavBackend->getLastModified(null);
if (! is_null($date)) {
return $date->timestamp;
}
Expand All @@ -92,7 +92,7 @@ public function getSyncToken(): ?string
{
$carddavBackend = $this->carddavBackend;
if ($carddavBackend instanceof CardDAVBackend) {
return (string) $carddavBackend->refreshSyncToken()->id;
return (string) $carddavBackend->refreshSyncToken(null)->id;
}

return null;
Expand Down
Loading