jolitagrazyte/laravel-discogs

An easy to use Laravel-Discogs package.

v1.0.1 2023-10-21 07:37 UTC

This package is auto-updated.

Last update: 2024-10-21 09:52:20 UTC


README

Latest Version on Packagist Software License Build Status SensioLabsInsight Quality Score Total Downloads

Installation

You can install the package via composer:

composer require jolitagrazyte/laravel-discogs

Post-installation

You must set the service provider of this package in your application file.

// config/app.php
'provider' => [
    ...
    Jolita\LaravelDiscogs\DiscogsServiceProvider::class,
    ...
];

This package also comes with a facade, which provides an easy way to call the the class.

// config/app.php
'aliases' => [
    ...
    'Discogs' => Jolita\LaravelDiscogs\DiscogsFacade::class,
    ...
];

Next up, you must publish the config file of this package with this command:

php artisan vendor:publish --provider="Jolita\LaravelDiscogs\DiscogsServiceProvider"

The following config file will be published in config/laravel-discogs.php

Some of the endpoints require authentication.

If you want to use one of those you must set your token.

/*
 * Token is your discogs token that you can obtain on https://www.discogs.com/settings/developers page.
 * User-Agent is a name of your application, for example 'MyAmazingDiscogsApp/1.0'.
 *
 */
return [
    'token' => env('DISCOGS_TOKEN', ''),
    'headers' => [
        'User-Agent' => '',
    ],
];

Usage

Usage of this package is really simple.

For the most of the endpoints there is a method.

Optionally you can also use the get()-method.

Endpoints with no authentication required

// Get artist where id is 1.
$artist = Discogs::artist('1');

// Request all the relases of the artist where id is 1.   
$artistRelease = Discogs::artistRelease('1');

// Get label where id is 1.
$label = Discogs::label('1');

// Request all the relases of the label where id is 1.
$labelRelease = Discogs::labelRelease('1');

// Get relase where id is 1.
$release = Discogs::release('1');

// Get listing where id is 1234.
$listing = Discogs::getMarketplaceListing('1234')

Inventory not authenticated

If you are not authenticated as the inventory owner, only items that have a status of For Sale will be visible.

// Get inventory where username is username.
$inventory = Discogs::getUsersInventory('username')

Endpoints where authentication is required

For the endpoints where authentication is required you must make sure that you have a token placed in your .env file or straight in the configuration file: config/laravel-discogs.php .

Orders

$myOrders = Discogs::getMyOrders();

// Get order with id 1234
$order = Discogs::orderWithId('1234');

// Get messages of the order with id 1234
$orderMessages = Discogs::orderMessages('1234')

Search

If you want to add some extra search parameters you can do it by first creating a SearchParameters object and then chaining as many options as you want.

// create a SearchParameters object
$searchParameters = new SearchParameters();

//chain some search paramater
$searchParameters->type('label')->format('lp')->year('1996');

//do a search request with query = 'MoWax' and passing the SearchParameters object
$searchResult = Discogs::search('MoWax', $searchParameters);

Inventory

When requesting your own inventory you also must authenticate.

As the inventory owner you will get additional weight, format_quantity, external_id, and location keys.

// Get inventory where username is username.
$inventory = Discogs::getUsersInventory('username')

Changelog

Please see CHANGELOG for more information what has changed recently.

Testing

$ composer test

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email hello@jolitagrazyte.com instead of using the issue tracker.

Credits

About Spatie

Spatie is a webdesign agency based in Antwerp, Belgium. You'll find an overview of all our open source projects on our website.

License

The MIT License (MIT). Please see License File for more information.