Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ab1f64a3 authored by Alexandre Roux's avatar Alexandre Roux
Browse files

set and restore selected sim card

parent 5aec4474
Loading
Loading
Loading
Loading
+60 −0
Original line number Diff line number Diff line
@@ -275,6 +275,66 @@
			</index>
		</declaration>
	</table>
	<table>
		<name>*dbprefix*esms_selected_sim</name>
		<declaration>
			<field>
				<name>user_id</name>
				<type>text</type>
				<notnull>true</notnull>
				<length>64</length>
			</field>
			<field>
				<name>address</name>
				<type>text</type>
				<notnull>true</notnull>
				<default></default>
				<length>15</length>
			</field>
			<field>
				<name>auto</name>
				<type>integer</type>
				<notnull>true</notnull>
				<default>1</default>
				<length>2</length>
			</field>
			<field>
				<name>card_number</name>
				<type>text</type>
				<notnull>true</notnull>
				<default></default>
				<length>15</length>
			</field>
			<field>
				<name>card_slot</name>
				<type>integer</type>
				<notnull>true</notnull>
				<default>-1</default>
				<length>2</length>
			</field>
			<field>
				<name>icc_id</name>
				<type>text</type>
				<notnull>true</notnull>
				<default></default>
				<length>20</length>
			</field>
			<field>
				<name>device_name</name>
				<type>text</type>
				<notnull>true</notnull>
				<default></default>
				<length>20</length>
			</field>
			<field>
				<name>carrier_name</name>
				<type>text</type>
				<notnull>true</notnull>
				<default></default>
				<length>20</length>
			</field>
		</declaration>
	</table>
	<table>
        <name>*dbprefix*esms_config</name>
        <declaration>
+4 −0
Original line number Diff line number Diff line
@@ -50,5 +50,9 @@ $application->registerRoutes($this, array('routes' => array(
	// @TODO future calls to sending calls recorded on the phone
	array('name' => 'api#fetch_messages_to_send', 'url' => '/api/v4/messages/sendqueue', 'verb' => 'GET'), // Android APIv4
	array('name' => 'api#delete_message', 'url' => '/api/v4/messages/delete_message', 'verb' => 'DELETE'), // Android APIv4
	array('name' => 'sms#set_selected_sim_card', 'url' => '/front-api/v4/messages/selected_sim_card', 'verb' => 'POST'), // Frontend APIv4
	array('name' => 'sms#get_selected_sim_card', 'url' => '/front-api/v4/messages/selected_sim_card', 'verb' => 'GET'), // Frontend APIv4



)));
+23 −0
Original line number Diff line number Diff line
@@ -301,6 +301,29 @@ class SmsController extends Controller {
		return new JSONResponse(array("status" => "ok"));
	}

	/**
	 * @NoAdminRequired
	 * @NoCSRFRequired
	 * @param $messageId
	 * @param $phoneNumber
	 * @return JSONResponse
	 */
	public function setSelectedSimCard ($phoneNumber, $auto, $cardNumber, $cardSlot, $iccId, $deviceName, $carrierName) {
		echo isset($cardNumber)?"true":"false";
		$this->smsMapper->setSelectedSimCardForConversation($this->userId, $phoneNumber, $auto, $cardNumber, $cardSlot, $iccId, $deviceName, $carrierName);
		return new JSONResponse(array("status" => "ok"));
	}

	/**
	 * @NoAdminRequired
	 * @NoCSRFRequired
	 * @param $messageId
	 * @param $phoneNumber
	 * @return JSONResponse
	 */
	public function getSelectedSimCard ($phoneNumber) {
		return new JSONResponse($this->smsMapper->getSelectedSimCardForConversation($this->userId, $phoneNumber));
	}
	/**
	 * @NoAdminRequired
	 * @NoCSRFRequired
+10 −0
Original line number Diff line number Diff line
@@ -419,3 +419,13 @@ Modal
	height: 25px;
	margin-bottom: 5px;
}

#esms-sim-ok-button{
	padding-left:20px;
	padding-right:20px;
	float:right;
}

.esms-button{
	cursor: pointer;
}
 No newline at end of file
+51 −0
Original line number Diff line number Diff line
@@ -145,6 +145,57 @@ class SmsMapper extends Mapper {
		return array();
	}

	public function getSelectedSimCardForConversation ($userId, $phoneNumber) {
		$qb = $this->db->getQueryBuilder();
		$qb->select('auto','card_number', 'card_slot', 'icc_id', 'device_name', 'carrier_name')
			->from('esms_selected_sim')
			->where($qb->expr()->andX(
				$qb->expr()->eq('user_id', $qb->createNamedParameter($userId)),
				$qb->expr()->eq('address', $qb->createNamedParameter($phoneNumber)),
			)
		);
		$result = $qb->execute();
		$simCard = array();
		while ($row = $result->fetch()) {
			if($row['auto'] == 1){
				return array();
			}
			$simCard = array(
				"card_number" =>  $row["card_number"],
				"card_slot" =>  $row["card_slot"],
				"icc_id" =>  $row["icc_id"],
				"device_name" =>  $row["device_name"],
				"carrier_name" =>  $row["carrier_name"],
			);
		}
		return $simCard;
	}

	public function setSelectedSimCardForConversation ($userId, $phoneNumber, $auto, $cardNumber, $cardSlot, $iccId, $deviceName, $carrierName) {
		$qb = $this->db->getQueryBuilder();
		$qb->delete('esms_selected_sim')
		->where($qb->expr()->andX(
				$qb->expr()->eq('user_id', $qb->createNamedParameter($userId)),
				$qb->expr()->eq('address', $qb->createNamedParameter($phoneNumber)),
			)
		)->execute();
		$qb->insert('esms_selected_sim')
			->values(array(
				'user_id' => $qb->createNamedParameter($userId),
				'auto' => $qb->createNamedParameter((int) $auto),
				'card_number' => $qb->createNamedParameter($cardNumber),
				'card_slot' => $qb->createNamedParameter((int) $cardSlot),
				'icc_id' => $qb->createNamedParameter($iccId),
				'device_name' => $qb->createNamedParameter($deviceName),
				'carrier_name' => $qb->createNamedParameter($carrierName),
				'address' => $qb->createNamedParameter($phoneNumber),
			));
		$qb->execute();
	
		return $simCard;
	}


	public function getAllMessagesForPhoneNumber ($userId, $phoneNumber, $country, $minDate = 0) {

		$phlst = $this->getAllPhoneNumbersForFPN($userId, $phoneNumber, $country);
Loading