From 718bde141d88ee993ebb1c789ba1798eaf1006e6 Mon Sep 17 00:00:00 2001 From: Skylar Ittner Date: Sun, 5 May 2019 00:37:21 -0600 Subject: [PATCH] Add chat API, move "items" to "inventory", add color+icon fields to items --- api/actions/getchat.php | 55 +++++++++++++++++++++ api/actions/{items.php => inventory.php} | 8 ++-- api/actions/sendchat.php | 22 +++++++++ api/apisettings.php | 22 +++++++-- composer.json | 3 +- composer.lock | 58 ++++++++++++++++++++--- database.mwb | Bin 23236 -> 23361 bytes database/migrate_v1.sql | 6 ++- 8 files changed, 159 insertions(+), 15 deletions(-) create mode 100644 api/actions/getchat.php rename api/actions/{items.php => inventory.php} (77%) create mode 100644 api/actions/sendchat.php diff --git a/api/actions/getchat.php b/api/actions/getchat.php new file mode 100644 index 0000000..59bec22 --- /dev/null +++ b/api/actions/getchat.php @@ -0,0 +1,55 @@ +boundingCoordinates($radius, "miles"); + +$where = [ + "LIMIT" => 100, + "ORDER" => "time" +]; + +if (!empty($VARS["latitude"]) && !empty($VARS["longitude"])) { + $where["AND"] = [ + 'lat[<>]' => [$searchbounds[0]->getLatitudeInDegrees(), $searchbounds[1]->getLatitudeInDegrees()], + 'long[<>]' => [$searchbounds[0]->getLongitudeInDegrees(), $searchbounds[1]->getLongitudeInDegrees()], + ]; +} + +ob_flush(); +$database->debug()->select("messages", [ + "[>]players" => "accountid" + ], [ + "id", + "time", + "message", + "messages.accountid", + "players.nickname" + ], $where +); +$query = ob_get_contents(); +ob_clean(); +$messages = $database->query($query)->fetchAll(); + +$myid = getRequestUser()->getUID(); +for ($i = 0; $i < count($messages); $i++) { + if ($messages[$i]["accountid"] == $myid) { + $messages[$i]["me"] = true; + } else { + $messages[$i]["me"] = false; + } +} + +exitWithJson(["status" => "OK", "count" => count($messages), "messages" => $messages]); diff --git a/api/actions/items.php b/api/actions/inventory.php similarity index 77% rename from api/actions/items.php rename to api/actions/inventory.php index 0bdab1e..cb6768a 100644 --- a/api/actions/items.php +++ b/api/actions/inventory.php @@ -17,11 +17,13 @@ $items = $database->select( 'items.itemname (name)', 'items.itemdesc (description)', 'items.itemcode (code)', + 'items.icon', + 'items.color', 'itemclasses.classid (classid)', - 'itemclasses.classname (classname' + 'itemclasses.classname (classname)' ], [ - "playeruuid" => getRequestUser()->getUID() + "inventory.accountid" => getRequestUser()->getUID() ] ); -exitWithJson(["status" => "OK", "items" => $items]); \ No newline at end of file +exitWithJson(["status" => "OK", "items" => $items]); diff --git a/api/actions/sendchat.php b/api/actions/sendchat.php new file mode 100644 index 0000000..8980a82 --- /dev/null +++ b/api/actions/sendchat.php @@ -0,0 +1,22 @@ +get("Message cannot be empty.", false), "ERROR"); +} + +$database->insert('messages', [ + 'time' => date("Y-m-d H:i:s"), + 'message' => $message, + 'lat' => $VARS['latitude'], + 'long' => $VARS['longitude'], + 'accountid' => getRequestUser()->getUID() +]); + +sendJsonResp(); diff --git a/api/apisettings.php b/api/apisettings.php index e0375a1..0e932a9 100644 --- a/api/apisettings.php +++ b/api/apisettings.php @@ -12,8 +12,8 @@ $APIS = [ "vars" => [ ] ], - "items" => [ - "load" => "items.php" + "inventory" => [ + "load" => "inventory.php" ], "createplayer" => [ "load" => "createplayer.php", @@ -57,5 +57,21 @@ $APIS = [ "longitude" => "/[0-9]{0,3}\.[0-9]{2,10}/", "radius (optional)" => "numeric" ] - ] + ], + "getchat" => [ + "load" => "getchat.php", + "vars" => [ + "latitude (optional)" => "/[0-9]{0,3}\.[0-9]{2,10}/", + "longitude (optional)" => "/[0-9]{0,3}\.[0-9]{2,10}/", + "radius (optional)" => "numeric" + ] + ], + "sendchat" => [ + "load" => "sendchat.php", + "vars" => [ + "latitude" => "/[0-9]{0,3}\.[0-9]{2,10}/", + "longitude" => "/[0-9]{0,3}\.[0-9]{2,10}/", + "message" => "string" + ] + ], ]; \ No newline at end of file diff --git a/composer.json b/composer.json index fb37c32..c81c0af 100644 --- a/composer.json +++ b/composer.json @@ -4,7 +4,8 @@ "type": "project", "require": { "catfan/medoo": "^1.5", - "guzzlehttp/guzzle": "^6.2" + "guzzlehttp/guzzle": "^6.2", + "anthonymartin/geo-location": "^1.0" }, "license": "MPL-2.0", "authors": [ diff --git a/composer.lock b/composer.lock index 8d36028..09d9030 100644 --- a/composer.lock +++ b/composer.lock @@ -4,9 +4,53 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "5c7439c6e041764f2f6b0270a95ab3ae", - "content-hash": "e4e700119f47d2f68b0ed82abaf8c5c6", + "content-hash": "a4330dce069db4d0d962b670496ca8ef", "packages": [ + { + "name": "anthonymartin/geo-location", + "version": "v1.0.1", + "source": { + "type": "git", + "url": "https://github.com/anthonymartin/GeoLocation.php.git", + "reference": "50bf026f069296dfae11aa195d987854b2e75855" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/anthonymartin/GeoLocation.php/zipball/50bf026f069296dfae11aa195d987854b2e75855", + "reference": "50bf026f069296dfae11aa195d987854b2e75855", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "class", + "autoload": { + "psr-0": { + "AnthonyMartin": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "CC 3.0" + ], + "authors": [ + { + "name": "Anthony Martin", + "email": "anthony@replaycreative.com", + "homepage": "http://replaycreative.com", + "role": "Developer" + } + ], + "description": "Retrieve bounding coordinates, distances, longitude and latitude with GeoLocation.class.php", + "homepage": "https://github.com/anthonymartin/GeoLocation.php", + "keywords": [ + "bounding coordinates", + "distances", + "geocoding", + "geolocation" + ], + "time": "2016-09-17T18:05:14+00:00" + }, { "name": "catfan/medoo", "version": "v1.5.7", @@ -64,7 +108,7 @@ "sql", "sqlite" ], - "time": "2018-06-14 18:59:08" + "time": "2018-06-14T18:59:08+00:00" }, { "name": "guzzlehttp/guzzle", @@ -129,7 +173,7 @@ "rest", "web service" ], - "time": "2018-04-22 15:46:56" + "time": "2018-04-22T15:46:56+00:00" }, { "name": "guzzlehttp/promises", @@ -180,7 +224,7 @@ "keywords": [ "promise" ], - "time": "2016-12-20 10:07:11" + "time": "2016-12-20T10:07:11+00:00" }, { "name": "guzzlehttp/psr7", @@ -245,7 +289,7 @@ "uri", "url" ], - "time": "2017-03-20 17:10:46" + "time": "2017-03-20T17:10:46+00:00" }, { "name": "psr/http-message", @@ -295,7 +339,7 @@ "request", "response" ], - "time": "2016-08-06 14:39:51" + "time": "2016-08-06T14:39:51+00:00" } ], "packages-dev": [], diff --git a/database.mwb b/database.mwb index 76381f75f0f77ab99b5842bf79f6cbdf424e6d55..0751eb3a055512161b9b7f7958d8a890c93fcacd 100644 GIT binary patch delta 22731 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 A>;M1& delta 22700 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 diff --git a/database/migrate_v1.sql b/database/migrate_v1.sql index a609c08..3dadfed 100644 --- a/database/migrate_v1.sql +++ b/database/migrate_v1.sql @@ -143,4 +143,8 @@ ALTER TABLE `terranquest`.`messages` CHANGE COLUMN `message` `message` TEXT COLLATE 'utf8mb4_bin' NOT NULL ; ALTER TABLE `terranquest`.`private_messages` -CHANGE COLUMN `message` `message` TEXT NOT NULL ; \ No newline at end of file +CHANGE COLUMN `message` `message` TEXT NOT NULL ; + +ALTER TABLE `terranquest`.`items` +ADD COLUMN `icon` VARCHAR(100) NULL DEFAULT NULL AFTER `weight`, +ADD COLUMN `color` VARCHAR(45) NULL DEFAULT NULL AFTER `icon`; \ No newline at end of file