mirror of
				https://github.com/pierre42100/ComunicAPI
				synced 2025-11-04 12:14:12 +00:00 
			
		
		
		
	Initial commit
This commit is contained in:
		
							
								
								
									
										3
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
				
			|||||||
 | 
					# The Comunic API
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This project is the main Comunic RestAPI. It assures data backend support
 | 
				
			||||||
							
								
								
									
										1
									
								
								RestControllers/.htaccess
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								RestControllers/.htaccess
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					Deny from all
 | 
				
			||||||
							
								
								
									
										28
									
								
								RestControllers/changesController.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								RestControllers/changesController.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Changes Rest Controller
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @author Pierre HUBERT
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					class changesController {
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Get the changes of a specified period
 | 
				
			||||||
 | 
						 * 
 | 
				
			||||||
 | 
						 * @url GET /changes/get/$from/$to
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getChanges($from, $to){
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							//Check values
 | 
				
			||||||
 | 
							if($from*1 > $to*1)
 | 
				
			||||||
 | 
								Rest_fatal_error(401, "Please specify a valid interval !");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							//We try to get changes of the specified period
 | 
				
			||||||
 | 
							$changes = DW::get()->changes->get($from*1, $to*1);
 | 
				
			||||||
 | 
							if($changes === false)
 | 
				
			||||||
 | 
								Rest_fatal_error(500, "Couldn't get changes of the specified period !");
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							//Return the informations
 | 
				
			||||||
 | 
							return $changes;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										82
									
								
								RestControllers/listsController.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										82
									
								
								RestControllers/listsController.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,82 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Lists management controller
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @author Pierre HUBERT
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class listsController {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Get the complete list
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @url GET /list/get
 | 
				
			||||||
 | 
						 * @url GET /list/get/
 | 
				
			||||||
 | 
						 * @url GET /list/get/$time
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getList($time="current"){
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							//We check if we want the current list or another one
 | 
				
			||||||
 | 
							if($time === "current"){
 | 
				
			||||||
 | 
								//Try to get the current list
 | 
				
			||||||
 | 
								if(!$list = DW::get()->lists->getCurrent())
 | 
				
			||||||
 | 
									Rest_fatal_error(500, "Couldn't get current list !");
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							else {
 | 
				
			||||||
 | 
								//Get the list of the specified timestamp
 | 
				
			||||||
 | 
								if(!$list = DW::get()->lists->getOnTimestamp($time*1))
 | 
				
			||||||
 | 
									Rest_fatal_error(500, "Couldn't get the list on specified timestamp !");
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							//Return the list
 | 
				
			||||||
 | 
							return $list;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Update the current list
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @url POST /list/update
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function updateList(){
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							//Authentication required (protected method)
 | 
				
			||||||
 | 
							if(!DW::get()->auth->restAuth())
 | 
				
			||||||
 | 
								Rest_fatal_error(401, "Authentication required !");
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							//Try to update list
 | 
				
			||||||
 | 
							if(!DW::get()->lists->update())
 | 
				
			||||||
 | 
								Rest_fatal_error(500, "Couldn't update Decodex list !");
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							//Else it is a success
 | 
				
			||||||
 | 
							return array("success" => "This list was successfully updated !");
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Get the list of available websites using urls
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @url GET /list/urls
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getListSites(){
 | 
				
			||||||
 | 
							//We try to get the list of urls
 | 
				
			||||||
 | 
							if(!$list = DW::get()->lists->getListUrls())
 | 
				
			||||||
 | 
								Rest_fatal_error(500, "Couldn't get the list of urls !");
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							//Return the list
 | 
				
			||||||
 | 
							return $list;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Get the list of URLs only
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @url GET /list/urls/only
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getURLsOnly(){
 | 
				
			||||||
 | 
							//We try to get the list of urls
 | 
				
			||||||
 | 
							if(!$list = DW::get()->lists->getListUrls(true))
 | 
				
			||||||
 | 
								Rest_fatal_error(500, "Couldn't get the list of urls !");
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							//Return the list
 | 
				
			||||||
 | 
							return $list;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										56
									
								
								RestControllers/sitesController.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								RestControllers/sitesController.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,56 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Sites informations controller
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @author Pierre HUBERT
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class sitesController{
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Get the informations about a website given a URL
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @url GET /site/$url/infos
 | 
				
			||||||
 | 
						 * @url POST /site/infos
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getInfosURL($url=false){
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							//We check if the URL was passed in $_POST mode
 | 
				
			||||||
 | 
							if(!$url){
 | 
				
			||||||
 | 
								if(!isset($_POST['url']))
 | 
				
			||||||
 | 
									Rest_fatal_error(401, "Please specify an URL !");
 | 
				
			||||||
 | 
								
 | 
				
			||||||
 | 
								$url = $_POST['url'];
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							//We try to get informations about a websites using its URL
 | 
				
			||||||
 | 
							if(!$infos = DW::get()->sites->getInfosFromURL($url))
 | 
				
			||||||
 | 
								Rest_fatal_error(500, "Couldn't get informations about the URL !");
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							//Return the informations
 | 
				
			||||||
 | 
							return $infos;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Get the informations history about a website given a URL
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @url GET /site/$url/history
 | 
				
			||||||
 | 
						 * @url POST /site/history
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getInfosURLHistory($url=false){
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							//We check if the URL was passed in $_POST mode
 | 
				
			||||||
 | 
							if(!$url){
 | 
				
			||||||
 | 
								if(!isset($_POST['url']))
 | 
				
			||||||
 | 
									Rest_fatal_error(401, "Please specify an URL !");
 | 
				
			||||||
 | 
								
 | 
				
			||||||
 | 
								$url = $_POST['url'];
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							//We try to get informations about a websites using its URL
 | 
				
			||||||
 | 
							if(!$infos = DW::get()->sites->getInfosFromURL($url, 0))
 | 
				
			||||||
 | 
								Rest_fatal_error(500, "Couldn't get history informations about the URL !");
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							//Return the informations
 | 
				
			||||||
 | 
							return $infos;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										25
									
								
								RestControllers/welcomeController.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								RestControllers/welcomeController.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * RestWelcome controller
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @author Pierre HUBERT
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class welcomeController {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Returns informations about the API
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @url GET /
 | 
				
			||||||
 | 
						 * @url GET /infos
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getInfos(){
 | 
				
			||||||
 | 
							return array(
 | 
				
			||||||
 | 
								"serviceDescription" => "This service watches DecodexList evolutions, stores them and let its client access them.",
 | 
				
			||||||
 | 
								"githubURL" => "https://github.com/pierre42100/decodexwatcherapi/",
 | 
				
			||||||
 | 
								"clientURL" => "https://decodexwatcher.communiquons.org/",
 | 
				
			||||||
 | 
								"apiSchema" => "https://swagger.decodexwatcher.communiquons.org/"
 | 
				
			||||||
 | 
							);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										14
									
								
								index.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								index.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Comunic Rest API
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Serves the data for users
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @author Pierre HUBERT
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Page initiator
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					include(__DIR__."/init.php");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Reference in New Issue
	
	Block a user