mirror of
				https://github.com/pierre42100/ComunicAPI
				synced 2025-11-04 12:14:12 +00:00 
			
		
		
		
	Can create clients from shell
This commit is contained in:
		
							
								
								
									
										46
									
								
								bin/add_client
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										46
									
								
								bin/add_client
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,46 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/env php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					###########################
 | 
				
			||||||
 | 
					# ComunicAPI clients add  #
 | 
				
			||||||
 | 
					#                         #
 | 
				
			||||||
 | 
					# @author Pierre HUBERT   #
 | 
				
			||||||
 | 
					###########################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Display a message
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					function msg(string $message){
 | 
				
			||||||
 | 
						echo $message."\n";
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Display help
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					function help(){
 | 
				
			||||||
 | 
						msg("Usage: ./add_client [name] [token]");
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//Check for arguments
 | 
				
			||||||
 | 
					if(count($_SERVER['argv']) < 3){
 | 
				
			||||||
 | 
						exit(help());
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//Initialize page
 | 
				
			||||||
 | 
					require __DIR__."/../init.php";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//Extract the arguments
 | 
				
			||||||
 | 
					$client = new APIClient();
 | 
				
			||||||
 | 
					$client->set_time_insert(time());
 | 
				
			||||||
 | 
					$client->set_name($_SERVER['argv'][1]);
 | 
				
			||||||
 | 
					$client->set_token($_SERVER['argv'][2]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//Try to create the client
 | 
				
			||||||
 | 
					if(!cs()->clients->create($client)){
 | 
				
			||||||
 | 
						msg("Err! Could not create client tokens!");
 | 
				
			||||||
 | 
						exit(10);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//Success
 | 
				
			||||||
 | 
					msg("The client has been created!");
 | 
				
			||||||
@@ -68,4 +68,40 @@ class APIClients {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Create new API client
 | 
				
			||||||
 | 
						 * 
 | 
				
			||||||
 | 
						 * @param APIClient $client The client to create
 | 
				
			||||||
 | 
						 * @return bool TRUE for a success / FALSE else
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function create(APIClient $client) : bool {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							//Get database entry
 | 
				
			||||||
 | 
							$entry = self::APIClientsToDb($client);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							//Insert the entry in the database
 | 
				
			||||||
 | 
							$tableName = CS::get()->config->get("dbprefix")."API_ServicesToken";
 | 
				
			||||||
 | 
							return CS::get()->db->addLine($tableName, $entry);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Turn a APIClient object into database entry
 | 
				
			||||||
 | 
						 * 
 | 
				
			||||||
 | 
						 * @param APIClientsToDb $client
 | 
				
			||||||
 | 
						 * @return array Generated database entry
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						private static function APIClientsToDb(APIClient $client) : array {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							$data = array();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							$data["time_insert"] = $client->get_time_insert();
 | 
				
			||||||
 | 
							$data["serviceName"] = $client->get_name();
 | 
				
			||||||
 | 
							$data["token"] = $client->get_token();
 | 
				
			||||||
 | 
							if($client->has_client_domain())
 | 
				
			||||||
 | 
								$data["client_domain"] = $client->get_client_domain();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							return $data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -11,9 +11,19 @@ require_once __DIR__."/BaseUniqueObject.php";
 | 
				
			|||||||
class APIClient extends BaseUniqueObject {
 | 
					class APIClient extends BaseUniqueObject {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	//Private fields
 | 
						//Private fields
 | 
				
			||||||
 | 
						private $time_insert;
 | 
				
			||||||
	private $name;
 | 
						private $name;
 | 
				
			||||||
	private $token;
 | 
						private $token;
 | 
				
			||||||
	private $url;
 | 
						private $client_domain;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						//Set and get creation time
 | 
				
			||||||
 | 
						public function set_time_insert(int $time_insert){
 | 
				
			||||||
 | 
							$this->time_insert = $time_insert;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public function get_time_insert() : int {
 | 
				
			||||||
 | 
							return $this->time_insert;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	//Get and set client name
 | 
						//Get and set client name
 | 
				
			||||||
	public function set_name(string $name){
 | 
						public function set_name(string $name){
 | 
				
			||||||
@@ -43,17 +53,17 @@ class APIClient extends BaseUniqueObject {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	//Get and set client URL
 | 
						//Get and set client domain
 | 
				
			||||||
	public function set_url(string $url){
 | 
						public function set_client_domain(string $client_domain){
 | 
				
			||||||
		$this->url = $url == "" ? null : $url;
 | 
							$this->client_domain = $client_domain == "" ? null : $client_domain;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public function has_url() : bool {
 | 
						public function has_client_domain() : bool {
 | 
				
			||||||
		return $this->url != null;
 | 
							return $this->client_domain != null;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public function get_url() : string {
 | 
						public function get_client_domain() : string {
 | 
				
			||||||
		return $this->url != null ? $this->url : "null";
 | 
							return $this->client_domain != null ? $this->client_domain : "null";
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -28,7 +28,7 @@ if(!isset($_GET["format"]))
 | 
				
			|||||||
header("Technology: Official Comunic API Server");
 | 
					header("Technology: Official Comunic API Server");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//Check client tokens
 | 
					//Check client tokens
 | 
				
			||||||
if(!$cs->tokens->checkClientRequestTokens())
 | 
					if(!$cs->clients->checkClientRequestTokens())
 | 
				
			||||||
	Rest_fatal_error(401, "Please check your client tokens!");
 | 
						Rest_fatal_error(401, "Please check your client tokens!");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//Check for remote requests limit
 | 
					//Check for remote requests limit
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										6
									
								
								init.php
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								init.php
									
									
									
									
									
								
							@@ -47,9 +47,9 @@ define("DBprefix", $cs->config->get("dbprefix"));
 | 
				
			|||||||
unset($db);
 | 
					unset($db);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//Add token object
 | 
					//Add token object
 | 
				
			||||||
$tokens = new APIClients();
 | 
					$clients = new APIClients();
 | 
				
			||||||
$cs->register("tokens", $tokens);
 | 
					$cs->register("clients", $clients);
 | 
				
			||||||
unset($tokens);
 | 
					unset($clients);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//Include models
 | 
					//Include models
 | 
				
			||||||
foreach(glob(PROJECT_PATH."classes/models/*.php") as $classFile){
 | 
					foreach(glob(PROJECT_PATH."classes/models/*.php") as $classFile){
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user