Source codes:
classDiagram
class FsArtifactType{
<<Enum>>
File
Folder
Drive
}
class ArtifactPermissionLevel{
<<Flags>>
None = 0
Read = 1
Write = 2
Delegate = 4
}
class ActionType{
<<Enum>>
Created
Modified
Shared
UnShared
Commented
}
There are different models declared to use while working with FulaClient libraries. Here is a brief description about these models.
Source codes:
classDiagram
class Blox{
+ string Id
+ string Name
+ string OwnerId
}
class BloxPool{
+ string Id
+ int? PingTime
+ KeyValuePair~string, string~[]? PrimaryInfos
+ KeyValuePair~string,KeyValuePair[]~[]? KeyValueGroups
}
class BloxPoolPurchaseInfo{
+ double? DueNowPaymentRequired
+ double? PerMounthPaymentRequired
}
Source codes:
classDiagram
class FulaUser{
+ string DId
+ string? Username
+ bool IsParent
+ KeyValuePair~string, string~[] Claims
}
class UserToken{
string Token,
KeyValuePair~string, string~[] Claims
}
Source codes:
classDiagram
class FsArtifact{
+ long? Id
+ string Name
+ string FullPath,
+ string? ParentFullPath
+ FsArtifactType ArtifactType
+ long? Size
+ string? OriginDevice
+ DateTimeOffset CreateDateTime
+ DateTimeOffset LastModifiedDateTime
+ string? WhoMadeLastEdit
+ ArtifactPermissionInfo[]? PermissionedUsers
+ string OwerDid
+ ArtifactPermissionLevel ArtifactPermissionLevel
+ bool? IsSharedWithMe
+ bool? IsSharedByMe
+ string ContentHas
}
class FsArtifactActivity{
+ FulaUser? Performer
+ DateTimeOffset? ActionDateTime
+ ActionType? ActionType
+ KeyValuePair~string,string~[]? Properties
}
class ArtifactPermissionInfo{
+ string FullPath
+ string DId
+ ArtifactPermissionLevel PermissionLevel
}
Source codes:
classDiagram
class ProgressInfo{
+ string? CurrentText
+ string? CurrentSubText
+ int? CurrentValue
+ int? MaxValue
}
There are four interfaces for dealing with Fula.
- FulaFileClient
- FulaIdentityClient
- FulaDatabaseClient
- FulaBloxClient
classDiagram
class FulaFileClient {
<<interface>>
}
class FulaIdentityClient {
<<interface>>
}
class FulaDatabaseClient {
<<interface>>
}
class FulaBloxClient {
<<interface>>
}
To work with Bloxes in the Fula network there is a FulaBloxClient.
To work with files in the Fula network there is a FulaFileClient.
Note: These methods GetChildrenArtifactsAsync, SearchArtifactsAsync,GetArtifactAsync and GetSharedByMeArtifacsAsync which return FsArtifact should fill the following properies to keep the contract.
IdNameFullPathParentFullPathFileExtensionArtifactTypeSizeLastModifiedDateTimeIsSharedWithMeIsSharedByMeContentHash
All of the FsArtifact properties will be provided by GetArtifactMetaAsync.
IdNameFullPathParentFullPathArtifactTypeSizeOriginDeviceCreateDateTimeLastModifiedDateTimeWhoMadeLastEditPermissionedUsersOwerDIdArtifactPermissionLevelIsSharedWithMeIsSharedByMeContentHas
To work with users and everything related to identity of the suers in the Fula network there is a FulaIdentityClient.
To work with the GraphQL database provided by Fula network there is a FulaDatabaseClient.