Wiki

Clone wiki

feelr-server / Feelr

Ideas

Models

song {
    id
    url
    title
    artist {}
    image {}
    comments []
    favorates []
    tags []
}

artist {
    id
    name
    image {}
    bio
    location
    url
}

image {
    id
    original_url
    thumbnail_url
    standard_url
}

comment {
    id
    user {}
    body
    time
}

favorite {

}

user {
    username
    email
    password
    password_hash
}

tag {
    id
    option_id
}

tag_category{
    id
    name
    options []
    is_default
}

option {
    id
    name
}

APIs

Player

  • Endpoint: /api/
  • Type: GraphQL
  • Queries:

    • Get list of tag categories

      {
          tag_categories{
              id
              name
              is_default
          }
      }
      
    • Get options of a tag category

      {
          options(tag_category_id: int = null) {
              id
              name
          }
      }
      
    • Get a song

      {
          song(mood: int) {
              id
              url
              title
              artist {
                  name
                  bio
                  region
                  image
              }
              image
              comments {
                  user {
                      id
                      username
                  }
                  body
                  time
              }
          }
      }
      
    • Get a specific number of songs

      {
          songs(mood: int, number: int) {
              id
              url
              title
              artist {
                  name
                  bio
                  region
                  image
              }
              image
              comments {
                  user {
                      id
                      username
                  }
                  body
                  time
              }
          }
      }
      
      - Mutations: - Favorite a song [signup required]

      {
          mutation create_favorite(song_id: int, user_id: int){
              id
          }
      }
      
    • Unfavorite a song [signup required]

      {
          mutation delete_favorite(song_id: int, user_id: int){
              id
          }
      }
      
    • Tag/Retag a song

      • When user is signed up

        {
            mutation create_tag(option_id){
        
            }
        }
        
      • When user is not signed up

        
        

Clients

Scrapers

Updated