Skip to content

Commit 3936897

Browse files
authored
Merge pull request #11 from rohit1290/master
Use "elgg_with_rest_api" folder instead of "web_services"
2 parents ffb8e09 + fe8f701 commit 3936897

24 files changed

+2648
-64
lines changed

APIs/API List.html

+1,756
Large diffs are not rendered by default.

README.md

+92-5
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,95 @@
1-
Web Services
1+
Elgg Web Services with REST API
22
============
33

4-
This plugin provides the web services API that was packaged with Elgg core from
5-
version 1.0-1.8. Other plugins can expose functions as web services for
6-
integration with other platforms or applications.
4+
Documentation is available at [http://learn.elgg.org](http://learn.elgg.org/en/stable/guides/web* services.html)
75

8-
Documentation is available at [http://learn.elgg.org](http://learn.elgg.org/en/stable/guides/web-services.html)
6+
List of API's available:
7+
8+
* search.site
9+
* album.get_posts
10+
* album.getid
11+
* auth.gettoken
12+
* auth.token_check
13+
* blog.delete_post
14+
* blog.get_comments
15+
* blog.get_post
16+
* blog.get_posts
17+
* blog.post_comment
18+
* blog.save_post
19+
* bookmark.get_comments
20+
* bookmark.get_post
21+
* bookmark.get_posts
22+
* bookmark.post_comment
23+
* bookmark.save_post
24+
* count.like_comment
25+
* file.get_comments
26+
* file.delete_comment
27+
* file.delete_post
28+
* file.update_post
29+
* file.get_file
30+
* file.get_files
31+
* file.get_post
32+
* file.post_comment
33+
* file.save_post
34+
* gcm.register
35+
* group.get_activity
36+
* group.get_icon
37+
* group.get_list
38+
* group.join_group
39+
* group.leave_group
40+
* image.get_photos
41+
* image.get_post
42+
* image.save_post
43+
* likes.add
44+
* likes.count
45+
* likes.delete
46+
* likes.getusers
47+
* message.send
48+
* messages.count
49+
* messages.delete
50+
* messages.inbox
51+
* messages.mark_all_as_read
52+
* messages.mark_all_as_unread
53+
* messages.mark_as_unread
54+
* messages.multiple_delete
55+
* messages.read
56+
* messages.sent
57+
* post.get_comments
58+
* site.getapi
59+
* site.user_can_edit
60+
* site.get_list_plugin
61+
* site.getinfo
62+
* site.river_friends
63+
* site.river_mine
64+
* site.river_short
65+
* system.api.list
66+
* user.forgot_password
67+
* user.check_username_availability
68+
* user.friend.add
69+
* user.friend.get_friends
70+
* user.friend.get_friends_of
71+
* user.friend.is.friend.of
72+
* user.friend.remove
73+
* user.get_friends
74+
* user.get_messageboard
75+
* user.get_profile
76+
* user.get_profile_fields
77+
* user.get_user_by_email
78+
* user.list_members
79+
* user.post_messageboard
80+
* user.register
81+
* user.river_short
82+
* user.save_profile
83+
* user.search
84+
* wire.delete_posts
85+
* wire.get_comments
86+
* wire.get_image_comments
87+
* wire.get_posts
88+
* wire.post_comment
89+
* wire.post_image_comment
90+
* wire.save_post
91+
* facebook.user_login
92+
* site.notifications_count
93+
* site.get_notifications
94+
95+
For more details on how to use the API is available at "APIs" folder > "API List.html" file in the repository.

lib/DB_Register_Functions.php

+4-4
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ class DB_Register_Functions {
77
// constructor
88
function __construct() {
99
$path = elgg_get_plugins_path();
10-
include_once $path . 'web_services/lib/DB_connect.php';
10+
include_once $path . 'elgg_with_rest_api/lib/DB_connect.php';
1111

1212
$conn = new DB_Connect();
1313
$this->db = $conn->connect();
@@ -37,7 +37,7 @@ public function storeUser($name, $account, $gcm_regid, $elgg_post, $elgg_message
3737
$id = mysqli_insert_id($this->db); // last inserted id
3838
$result = mysqli_query($this->db, "SELECT * FROM gcm_users WHERE id = $id");
3939
// return user details
40-
if (mysql_num_rows($result) > 0) {
40+
if (mysqli_num_rows($result) > 0) {
4141
return mysqli_fetch_array($result);
4242
} else {
4343
return false;
@@ -67,7 +67,7 @@ public function updateUser($name, $account, $gcm_regid, $elgg_post, $elgg_messag
6767
{
6868
$result = mysqli_query($this->db, "UPDATE gcm_users SET name='$name', account='$account', elgg_post='$elgg_post', elgg_message='$elgg_message' WHERE gcm_regid='$gcm_regid'");
6969

70-
if (mysql_num_rows($result) > 0) {
70+
if (mysqli_num_rows($result) > 0) {
7171
return mysqli_fetch_array($result);;
7272
} else {
7373
return false;
@@ -136,7 +136,7 @@ public function updateNewRegId($old_regId, $new_regId)
136136
public function checkRegId($regId)
137137
{
138138
$result = mysqli_query($this->db, "select * FROM gcm_users WHERE gcm_regid = '$regId'");
139-
if (mysql_num_rows($result) > 0) {
139+
if (mysqli_num_rows($result) > 0) {
140140
return mysqli_fetch_array($result);
141141
} else {
142142
return false;

lib/DB_connect.php

+3-4
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,13 @@ public function connect() {
1010
$con = mysqli_connect($CONFIG->dbhost, $CONFIG->dbuser, $CONFIG->dbpass, $CONFIG->dbname);
1111
// selecting database
1212
if (!$con) {
13-
error_log("Error: Unable to connect to MySQL." . PHP_EOL);
14-
error_log("Debugging errno: " . mysqli_connect_errno() . PHP_EOL);
15-
error_log("Debugging error: " . mysqli_connect_error() . PHP_EOL);
13+
error_log("[".date(DATE_RFC2822)."] Error: Unable to connect to MySQL." . PHP_EOL, 3, "web_error_log");
14+
error_log("[".date(DATE_RFC2822)."] Debugging errno: " . mysqli_connect_errno() . PHP_EOL, 3, "web_error_log");
15+
error_log("[".date(DATE_RFC2822)."] Debugging error: " . mysqli_connect_error() . PHP_EOL, 3, "web_error_log");
1616
exit;
1717
}
1818

1919
// return database handler
2020
return $con;
2121
}
2222
}
23-

lib/GCM.php

+8-8
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ class GCM {
66
// constructor
77
function __construct() {
88
$path = elgg_get_plugins_path();
9-
include_once $path.'web_services/lib/DB_Register_Functions.php';
9+
include_once $path.'elgg_with_rest_api/lib/DB_Register_Functions.php';
1010
}
1111

1212
public function setup_message($sender_name, $sender_username, $recipient_name, $recipient_username, $message_sent_title, $message_sent_description)
@@ -55,10 +55,10 @@ public function send_notification($registration_ids, $message) {
5555

5656
if ($message) {
5757
// include config
58-
$GOOGLE_API_KEY = elgg_get_plugin_setting('google_api_key', 'web_services');
58+
$GOOGLE_API_KEY = elgg_get_plugin_setting('google_api_key', 'elgg_with_rest_api');
5959

6060
// Set POST variables
61-
$url = 'https://android.googleapis.com/gcm/send';
61+
$url = 'https://fcm.googleapis.com/fcm/send';
6262

6363
$fields = array(
6464
'registration_ids' => $registration_ids,
@@ -86,7 +86,7 @@ public function send_notification($registration_ids, $message) {
8686

8787
// Execute post
8888
$result = curl_exec($ch);
89-
error_log($result);
89+
error_log("[".date(DATE_RFC2822). " " . $result . PHP_EOL, 3, "web_error_log");
9090
if ($result === FALSE) {
9191
die('Curl failed: ' . curl_error($ch));
9292
return false;
@@ -104,9 +104,9 @@ function removeOldRegId($regId)
104104
$db = new DB_Register_Functions();
105105
$result = $db->deleteRegId($regId);
106106
if ($result) {
107-
error_log("Success removed RegId");
107+
error_log("[".date(DATE_RFC2822)."] Success removed RegId". PHP_EOL, 3, "web_error_log");
108108
} else {
109-
error_log("Fail to remove RedId");
109+
error_log("[".date(DATE_RFC2822)."] Fail to remove RedId". PHP_EOL, 3, "web_error_log");
110110
}
111111
}
112112

@@ -115,9 +115,9 @@ public function updateRegId($old_regId, $new_regId)
115115
$db = new DB_Register_Functions();
116116
$result = $db->updateNewRegId($old_regId, $new_regId);
117117
if ($result) {
118-
error_log("Success updated RegId");
118+
error_log("[".date(DATE_RFC2822)."] Success updated RegId". PHP_EOL, 3, "web_error_log");
119119
} else {
120-
error_log("Fail to update RedId");
120+
error_log("[".date(DATE_RFC2822)."] Fail to update RedId". PHP_EOL, 3, "web_error_log");
121121
}
122122
}
123123
}

lib/auth.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ function get_api_key() {
5656
}
5757

5858
function get_gcm_sender_id() {
59-
$gcm_sender_id = elgg_get_plugin_setting('google_sender_id', 'web_services');
59+
$gcm_sender_id = elgg_get_plugin_setting('google_sender_id', 'elgg_with_rest_api');
6060
if (!$gcm_sender_id) {
6161
$gcm_sender_id = '';
6262
}

lib/blog.php

+6-2
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,8 @@ function blog_get_posts($context, $username, $limit = 10, $offset = 0,$group_gui
7474
$blog['guid'] = $single->guid;
7575
$blog['title'] = $single->title;
7676
$blog['excerpt'] = $single->excerpt;
77+
$blog['status'] = $single->status;
78+
$blog['link'] = $single->getURL();
7779

7880
if (strlen($single->description) > 300) {
7981
$entityString = substr(strip_tags($single->description), 0, 300);
@@ -109,7 +111,7 @@ function blog_get_posts($context, $username, $limit = 10, $offset = 0,$group_gui
109111
if ($single->tags == null) {
110112
$blog['tags'] = '';
111113
} else {
112-
$blog['tags'] = implode(",", $single->tags);
114+
$blog['tags'] = $single->tags;
113115
}
114116

115117
$return[] = $blog;
@@ -331,11 +333,13 @@ function blog_get_post($guid, $username) {
331333
$return['title'] = htmlspecialchars($blog->title);
332334
$return['description'] = $blog->description;
333335
$return['excerpt'] = $blog->excerpt;
336+
$return['status'] = $blog->status;
337+
$return['link'] = $blog->getURL();
334338

335339
if ($blog->tags == null) {
336340
$return['tags'] = '';
337341
} else {
338-
$return['tags'] = implode(",", $blog->tags);
342+
$return['tags'] = $blog->tags;
339343
}
340344

341345
$comments = elgg_get_entities(array(

lib/bookmark.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ function bookmark_get_posts($context, $limit = 20, $offset = 0, $username, $fro
117117
if ($single->tags == null) {
118118
$bookmark['tags'] = '';
119119
} else {
120-
$bookmark['tags'] = implode(",", $single->tags);
120+
$bookmark['tags'] = $single->tags;
121121
}
122122

123123
$bookmark['like_count'] = likes_count_number_of_likes($single->guid);
@@ -184,7 +184,7 @@ function bookmark_get_post($guid, $username) {
184184
if ($bookmark->tags == null) {
185185
$return['tags'] = '';
186186
} else {
187-
$return['tags'] = implode(",", $bookmark->tags);
187+
$return['tags'] = $bookmark->tags;
188188
}
189189

190190
$comments = elgg_get_entities(array(

lib/core.php

+69-6
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ function site_river_short($username, $limit=20, $offset=0, $from_guid) {
3939

4040
$activities = elgg_get_river($options);
4141
//$test2 = elgg_list_river($options);
42-
//error_log($test2);
42+
//error_log($test2, 3, "web_error_log");
4343

4444
$login_user = $user;
4545
$handle = getRiverActivity($activities, $user, $login_user);
@@ -601,11 +601,74 @@ function getRiverActivity($activities, $user, $login_user) {
601601
} else {
602602
$entityString = '';
603603
}
604-
605-
} else {
606-
//$isObject = true;
607-
//$entityTxt = get_object_entity_as_row($activity->object_guid)->description;
608-
}
604+
// Custome formatting start here -- Rohit Gupta (30th Dec 2016)
605+
} else if ($activity->view == 'river/object/badge/assign' || $activity->view == 'river/object/badge/award') {
606+
$isObject = true;
607+
$performed_by = $activity->getSubjectEntity();
608+
$performed_on = $activity->getObjectEntity();
609+
$object = $activity->getObjectEntity();
610+
611+
if ($guid = $object->badges_badge) {
612+
$badge = get_entity($guid);
613+
$badge_url = $badge->badges_url;
614+
615+
if ($badge_url) {
616+
$badge_view = "<a href=\"" . $badge_url . "\"><img title=\"" . $badge->title . "\" src=\"" . elgg_add_action_tokens_to_url(elgg_get_site_url() . "action/badges/view?file_guid=" . $badge->guid) . "\"></a>";
617+
} else {
618+
$badge_view = "<img title=\"" . $badge->title . "\" src=\"" . elgg_add_action_tokens_to_url(elgg_get_site_url() . "action/badges/view?file_guid=" . $badge->guid) . "\">";
619+
}
620+
621+
$url = $performed_by->name;
622+
$entityString = elgg_echo('badges:river:assigned', array($url, $badge->title)) . "<br>" . $badge_view;
623+
$entityTxt = 'A new Badge was awarded!';
624+
}
625+
} else if ($activity->view == 'river/event_relationship/create') {
626+
$isObject = true;
627+
$user = get_entity($activity->subject_guid);
628+
$event = get_entity($activity->object_guid);
629+
630+
$subject_url = "<a href='" . $user->getURL() . "'>" . $user->name . "</a>";
631+
$event_url = "<a href='" . $event->getURL() . "'>" . $event->title . "</a>";
632+
633+
$relationtype = $event->getRelationshipByUser($user->getGUID());
634+
$entityTxt = "posted a new event!";
635+
$entityString = elgg_echo("event_manager:river:event_relationship:create:" . $relationtype, array($subject_url, $event_url));
636+
} else if ($activity->view == 'river/object/event/create') {
637+
$isObject = true;
638+
$object = $activity->getObjectEntity();
639+
$entityString = elgg_get_excerpt($object->description);
640+
$entityTxt = "created event " . $object->title;
641+
} else if ($activity->view == 'river/object/questions/create') {
642+
$isObject = true;
643+
$object = $activity->getObjectEntity();
644+
$entityString = elgg_get_excerpt($object->description);
645+
$entityTxt = "asked a new question!";
646+
} else if ($activity->view == 'river/relationship/member_of_site/create') {
647+
$isObject = true;
648+
$object = $activity->getObjectEntity();
649+
$entityString = elgg_get_excerpt($object->description);
650+
$entityTxt = "joined the site!";
651+
652+
} else if ($activity->view == 'river/object/videos/create') {
653+
$isObject = true;
654+
$object = $activity->getObjectEntity();
655+
$excerpt = elgg_get_excerpt($object->description);
656+
657+
$video_url = $object->video_url;
658+
659+
$video_url = str_replace("feature=player_embedded&amp;", "", $video_url);
660+
$video_url = str_replace("feature=player_detailpage&amp;", "", $video_url);
661+
$video_url = str_replace("http://youtu.be","https://www.youtube.be",$video_url);
662+
$guid = $object->guid;
663+
$entityTxt = "posted a video!";
664+
$entityString = $excerpt . "|" . $video_url;
665+
} else {
666+
$isObject = true;
667+
$object = $activity->getObjectEntity();
668+
$entityString = elgg_get_excerpt($object->description);
669+
$entityTxt = "";
670+
}
671+
// Custome formatting end here -- Rohit Gupta (30th Dec 2016)
609672

610673
if ($isObject) {
611674
$handle[] = array(

lib/events.php

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?php
2+
/*
3+
* View all Events
4+
* View details of one Events
5+
* RSVP Events (event_manager/actions/event/rsvp.php)
6+
* Unsubscribe Events (event_manager/actions/event/unsubscribe.php & event_manager/actions/event/unsubscribe_confirm.php)
7+
* Post Comment on Event
8+
* Get Comment on Event
9+
* Create / Edit an Events (event_manager/views/default/resources/events/event/edit.php)
10+
* Add river post when event is created (event_manager/actions/event/edit.php)
11+
* Add Files to Event (event_manager/actions/event/upload.php)
12+
* Delete File of Event (event_manager/actions/event/delete.php)
13+
* Delete an Event (event_manager/actions/event/delete.php)
14+
* Search an event (event_manager/actions/event/search.php)
15+
* Include past events
16+
* Advance Search
17+
* Optional: View event on map
18+
* Get Direction from current location to Event Location
19+
*/
20+
21+
22+
?>

0 commit comments

Comments
 (0)