Skip to content
This repository was archived by the owner on Dec 24, 2025. It is now read-only.

Latest commit

 

History

History
209 lines (180 loc) · 5.44 KB

File metadata and controls

209 lines (180 loc) · 5.44 KB

FulaClient

Enums

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
}
Loading

Models

There are different models declared to use while working with FulaClient libraries. Here is a brief description about these models.

Blox and Pool

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
}

Loading

User

Source codes:

classDiagram

class FulaUser{
    + string DId
    + string? Username
    + bool IsParent
    + KeyValuePair~string, string~[] Claims
}

class UserToken{
    string Token,
    KeyValuePair~string, string~[] Claims
}
Loading

File and Folder

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
}
Loading

Actions

Source codes:

classDiagram

class ProgressInfo{
    + string? CurrentText
    + string? CurrentSubText
    + int? CurrentValue
    + int? MaxValue
}
Loading

Interfaces

Introduction

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>>
}
Loading

FulaBloxClient

To work with Bloxes in the Fula network there is a FulaBloxClient.

FulaFileClient

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.

  • Id
  • Name
  • FullPath
  • ParentFullPath
  • FileExtension
  • ArtifactType
  • Size
  • LastModifiedDateTime
  • IsSharedWithMe
  • IsSharedByMe
  • ContentHash

All of the FsArtifact properties will be provided by GetArtifactMetaAsync.

  • Id
  • Name
  • FullPath
  • ParentFullPath
  • ArtifactType
  • Size
  • OriginDevice
  • CreateDateTime
  • LastModifiedDateTime
  • WhoMadeLastEdit
  • PermissionedUsers
  • OwerDId
  • ArtifactPermissionLevel
  • IsSharedWithMe
  • IsSharedByMe
  • ContentHas

FulaIdentityClient

To work with users and everything related to identity of the suers in the Fula network there is a FulaIdentityClient.

FulaDatabaseClient

To work with the GraphQL database provided by Fula network there is a FulaDatabaseClient.