Skip to content
Snippets Groups Projects
Commit 9f29abb1 authored by Razzan Yoni's avatar Razzan Yoni
Browse files

fix some errors

parent 298afe51
Branches dev
No related merge requests found
......@@ -107,4 +107,10 @@ This plain web service is a monolithic web application to stream your personal m
| AJAX | 13521087 |
## Changes Made
- New subscription features
\ No newline at end of file
- New subscription features
| Task | Student ID |
|------------------|------------|
| SOAP Client | 13521087 |
| REST Client | 13521087 |
| Premium Album UI | 13521063 |
<?php
require_once ROOT_DIR . "src/cores/Application.php";
use cores\Application;
use models\PremiumAlbumModel;
function AlbumCard(PremiumAlbumModel $album): string
{
$albumId = $album->get('album_id');
$coverFileName = $album->get('cover_filename') ? : 'default-cover.jpg';
$coverUrl = STORAGE_FOLDER . '/' . $coverFileName;
$albumName = $album->get('album_name');
$albumArtist = $album->get('artist');
return <<<"EOT"
<a href="/premiumAlbum/$albumId" class="album-card">
<div class="album-info-container">
<img src=$coverUrl alt="album cover image" class="album-cover-image"/>
<div class="album-name">$albumName</div>
<div class="artist-name">$albumArtist</div>
</div>
</a>
EOT;
}
......@@ -6,7 +6,7 @@
require_once ROOT_DIR . "src/models/PremiumAlbumModel.php";
require_once ROOT_DIR . "src/controllers/PremiumAlbumController.php";
require_once ROOT_DIR . "src/repositories/PremiumAlbumRepository.php";
require_once ROOT_DIR . "public/components/AlbumCard.php";
require_once ROOT_DIR . "public/components/PremiumAlbumCard.php";
use models\PremiumAlbumModel;
......
......@@ -41,6 +41,7 @@ class PremiumAlbumController extends BaseController
'totalPage' => $premiumAlbumsTotalPage,
'page' => $page,
'size' => $size,
'is_admin' => Application::$app->loggedUser->isAdmin(),
]
]);
}
......@@ -53,8 +54,15 @@ class PremiumAlbumController extends BaseController
if (isset($request->getBody()['size'])) $size = $request->getBody()['size'];
if (isset($request->getBody()['searchQuery'])) $searchQuery = $request->getBody()['searchQuery'];
$premiumAlbums = PremiumAlbumRepository::getInstance()->searchPremiumAlbumOwned($page, $size, $searchQuery);
$premiumAlbumsTotalPage = ceil($premiumAlbums["paging"]["totalAlbums"] / ROWS_PER_PAGE);
$premiumAlbums = $premiumAlbums["data"];
if (isset($premiumAlbums["data"]))
{
$premiumAlbumsTotalPage = ceil($premiumAlbums["paging"]["totalAlbums"] / ROWS_PER_PAGE);
$premiumAlbums = $premiumAlbums["data"];
}
if (!$premiumAlbums) {
$premiumAlbums = [];
$premiumAlbumsTotalPage = 0;
}
$this->setLayout('PremiumAlbum');
return $this->render('premium/premiumAlbumOwned', [
......@@ -67,6 +75,7 @@ class PremiumAlbumController extends BaseController
'page' => $page,
'size' => $size,
'searchQuery' => $searchQuery,
'is_admin' => Application::$app->loggedUser->isAdmin()
]
]);
}
......
......@@ -4,7 +4,7 @@ namespace models;
use bases\BaseModel;
class PremiumAlbumModel
class PremiumAlbumModel extends BaseModel
{
protected $album_id;
protected $album_name;
......@@ -22,4 +22,16 @@ class PremiumAlbumModel
$this->cover_filename = $data['coverFilename'];
return $this;
}
public function toArray(): array
{
return [
'albumId' => $this->album_id,
'albumName' => $this->album_name,
'releaseDate' => $this->release_date,
'genre' => $this->genre,
'artist' => $this->artist,
'coverFilename' => $this->cover_filename
];
}
}
\ No newline at end of file
......@@ -2,7 +2,7 @@
namespace repositories;
require_once __DIR__ . '/../clients/TonalitySOAPClient.php';
require_once ROOT_DIR . "src/clients/TonalitySOAPClient.php";
// https://www.w3docs.com/snippets/php/how-to-send-a-post-request-with-php.html
use clients\TonalitySOAPClient;
......@@ -47,7 +47,7 @@ class SubscriptionRepository
public function getSubscriptionByUserId($userId, $page, $size) {
$subscriptions = [];
foreach ($this->soapClient->handler(
$test = $this->soapClient->handler(
'getSubscriptionsByUserId',
"POST",
[
......@@ -55,7 +55,8 @@ class SubscriptionRepository
'page' => $page,
'size' => $size
],
)->subscription as $value) {
)->subscription ?? [];
foreach ($test as $value) {
$subscriptionModel = new SubscriptionModel();
$subscriptionModel->set('user_id', $value->userId);
$subscriptionModel->set('premium_album_id', $value->premiumAlbumId);
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment