Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor JS interface functions to modules #56

Open
55 tasks
DevonJames opened this issue May 31, 2017 · 0 comments
Open
55 tasks

Refactor JS interface functions to modules #56

DevonJames opened this issue May 31, 2017 · 0 comments
Assignees
Labels

Comments

@DevonJames
Copy link
Member

DevonJames commented May 31, 2017

For Library Index Interfaces

  • List All Artifacts, include these fields:

    • ArtifactID
    • Publisher
    • Title
    • Artifact Type
    • Description
    • Play Length (sum of all files inside it)
    • Cost ($artCost)
  • Sort A List of Artifacts by:

    • Publish Timestamp
    • Publisher Name, Alphabetically
    • Title, Alphabetically
    • Artifact Type, Alphabetically
    • Play Length (sum of all files within it)
    • Cost ($artCost)
  • Filter A List of Artifacts by any field

  • List All Publishers, include these fields:

    • Name
    • Address
    • Timestamp
    • emailmd5
  • Sort A List of Publishers by:

    • Registration Timestamp
    • Publisher Name, Alphabetically
    • Publisher Address, Alphabetically
  • Filter a List of Publishers by any field

  • List All Artifacts by a Publisher, include these fields:

    • ArtifactID
    • Title
    • Artifact Type
    • Cost ($artCost)
  • Get Publisher's avatar from Gravatar.com's API (using emailmd5 field, if available)

For Individual Artifact Interfaces

  • Get Artifact Info

    • Inputs shall include:
    • Artifact: $ArtifactID
    • Fields: "RequiredOnly", "All" or List fieldnames requested beyond the minimum required list below
    • Results shall always include these required fields:
    • artifact title: $title
    • artist: $artist
    • artifact type: $type
    • year: $year
    • timestamp: $timestamp
    • description: $description
    • publisher: $publisherName
    • artifact cost: $artCost
    • play length: sum of the $duration field for all files within artifact
    • files: $NumberOfFilesInArtifact
    • preview: $addressOfPreviewFile (coverArt or thumbnail)
  • Get Info about a specific file inside an Artifact

    • Inputs shall include:
    • Artifact: $artifactID?file=#
    • Fields: "RequiredOnly", "All" or List fieldnames requested beyond the minimum required list below
    • Results shall always include these required fields (but please exclude if they are empty):
    • type: $fileType
    • duration: $duration
    • sugPlay: $sugPlay
    • minPlay: $minPlay
    • disallowPlay: $disallowPlay
    • sugBuy: $sugBuy
    • minBuy: $minBuy
    • disallowBuy: $disallowBuy
    • retailer cut: $retail
    • promoter cut: $promo
  • Get the address of a file within an Artifact to Play or Download it

    • Inputs shall include:
    • artifact: $artifactID?file=#
    • Results shall include:
    • network: $networkName
    • location: $addressOfFile (either $location/$fname or $fileaddress. if the file has a price on it, return Payment Required)
    • dname: $displayName
    • type: $fileType
    • duration: $duration
  • Get Virtual "Pay Wall" Info to Play or Buy a whole Artifact or a file within an artifact.

    • Inputs shall include:
    • artifact: $artifactID or $artifactID?file=#
    • payment in what token: (BTC, FLO, and so on)
    • price in what fiat: (USD, CNY, and so on)
    • action: (play or buy)
    • price only: (Boolean, if Yes, do not generate a temp address)
    • Results shall include:
    • price for action: $priceInToken
    • payment address: $tempPaymentAddress
    • Session should stay live and periodically check if the Temp Payment Address for payments, and when an appropriate one is made, return these results:
    • network: $networkName
    • location: $addressOfFile **(either $location/$fname or $fileaddress.)
    • dname: $displayName
    • type: $fileType
    • duration: $duration
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants