pub struct LinkyDevice {
pub id: Uuid,
pub building_id: Uuid,
pub prm: String,
pub provider: LinkyProvider,
pub api_key_encrypted: String,
pub refresh_token_encrypted: Option<String>,
pub token_expires_at: Option<DateTime<Utc>>,
pub last_sync_at: Option<DateTime<Utc>>,
pub sync_enabled: bool,
pub created_at: DateTime<Utc>,
pub updated_at: DateTime<Utc>,
}Expand description
Linky smart meter device configuration Stores configuration for Linky (Enedis France) or Ores (Belgium) smart meters
Fields§
§id: Uuid§building_id: Uuid§prm: String§provider: LinkyProvider§api_key_encrypted: String§refresh_token_encrypted: Option<String>§token_expires_at: Option<DateTime<Utc>>§last_sync_at: Option<DateTime<Utc>>§sync_enabled: bool§created_at: DateTime<Utc>§updated_at: DateTime<Utc>Implementations§
Source§impl LinkyDevice
impl LinkyDevice
Sourcepub fn new(
building_id: Uuid,
prm: String,
provider: LinkyProvider,
api_key_encrypted: String,
) -> Result<Self, String>
pub fn new( building_id: Uuid, prm: String, provider: LinkyProvider, api_key_encrypted: String, ) -> Result<Self, String>
Create a new Linky device configuration
Sourcepub fn with_refresh_token(
self,
refresh_token_encrypted: String,
expires_at: DateTime<Utc>,
) -> Self
pub fn with_refresh_token( self, refresh_token_encrypted: String, expires_at: DateTime<Utc>, ) -> Self
Set refresh token (for OAuth2 token rotation)
Sourcepub fn set_sync_enabled(&mut self, enabled: bool)
pub fn set_sync_enabled(&mut self, enabled: bool)
Enable/disable automatic sync
Sourcepub fn enable_sync(&mut self)
pub fn enable_sync(&mut self)
Enable automatic sync (convenience method)
Sourcepub fn disable_sync(&mut self)
pub fn disable_sync(&mut self)
Disable automatic sync (convenience method)
Sourcepub fn mark_synced(&mut self)
pub fn mark_synced(&mut self)
Update last sync timestamp
Sourcepub fn update_tokens(
&mut self,
api_key_encrypted: String,
refresh_token_encrypted: Option<String>,
expires_at: Option<DateTime<Utc>>,
) -> Result<(), String>
pub fn update_tokens( &mut self, api_key_encrypted: String, refresh_token_encrypted: Option<String>, expires_at: Option<DateTime<Utc>>, ) -> Result<(), String>
Update OAuth2 tokens (access + refresh)
Sourcepub fn is_token_expired(&self) -> bool
pub fn is_token_expired(&self) -> bool
Check if OAuth2 token is expired or about to expire (within 5 minutes)
Sourcepub fn needs_sync(&self) -> bool
pub fn needs_sync(&self) -> bool
Check if device needs sync (never synced or last sync > 24h ago)
Sourcepub fn api_endpoint(&self) -> &'static str
pub fn api_endpoint(&self) -> &'static str
Get API endpoint for this provider
Trait Implementations§
Source§impl Clone for LinkyDevice
impl Clone for LinkyDevice
Source§fn clone(&self) -> LinkyDevice
fn clone(&self) -> LinkyDevice
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for LinkyDevice
impl Debug for LinkyDevice
Source§impl<'de> Deserialize<'de> for LinkyDevice
impl<'de> Deserialize<'de> for LinkyDevice
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl From<LinkyDevice> for LinkyDeviceResponseDto
impl From<LinkyDevice> for LinkyDeviceResponseDto
Source§fn from(device: LinkyDevice) -> Self
fn from(device: LinkyDevice) -> Self
Converts to this type from the input type.
Source§impl PartialEq for LinkyDevice
impl PartialEq for LinkyDevice
Source§impl Serialize for LinkyDevice
impl Serialize for LinkyDevice
impl StructuralPartialEq for LinkyDevice
Auto Trait Implementations§
impl Freeze for LinkyDevice
impl RefUnwindSafe for LinkyDevice
impl Send for LinkyDevice
impl Sync for LinkyDevice
impl Unpin for LinkyDevice
impl UnwindSafe for LinkyDevice
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Chain<T> for T
impl<T> Chain<T> for T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Fake for T
impl<T> Fake for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreCreates a shared type from an unshared type.