1
0
Fork 0
mirror of synced 2024-06-14 16:54:52 +12:00

feat: preferences response model

This commit is contained in:
Torsten Dittmann 2021-04-21 15:37:51 +02:00
parent b0cb7a9b8d
commit cc34719768
6 changed files with 45 additions and 8 deletions

View file

@ -776,7 +776,7 @@ App::get('/v1/account/prefs')
->label('sdk.description', '/docs/references/account/get-prefs.md')
->label('sdk.response.code', Response::STATUS_CODE_OK)
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
->label('sdk.response.model', Response::MODEL_ANY)
->label('sdk.response.model', Response::MODEL_PREFERENCES)
->inject('response')
->inject('user')
->action(function ($response, $user) {
@ -785,7 +785,7 @@ App::get('/v1/account/prefs')
$prefs = $user->getAttribute('prefs', new \stdClass());
$response->dynamic(new Document($prefs), Response::MODEL_ANY);
$response->dynamic(new Document($prefs), Response::MODEL_PREFERENCES);
});
App::get('/v1/account/sessions')
@ -1069,7 +1069,7 @@ App::patch('/v1/account/prefs')
->label('sdk.description', '/docs/references/account/update-prefs.md')
->label('sdk.response.code', Response::STATUS_CODE_OK)
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
->label('sdk.response.model', Response::MODEL_ANY)
->label('sdk.response.model', Response::MODEL_USER)
->param('prefs', [], new Assoc(), 'Prefs key-value JSON object.')
->inject('response')
->inject('user')

View file

@ -151,7 +151,7 @@ App::get('/v1/users/:userId/prefs')
->label('sdk.description', '/docs/references/users/get-user-prefs.md')
->label('sdk.response.code', Response::STATUS_CODE_OK)
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
->label('sdk.response.model', Response::MODEL_ANY)
->label('sdk.response.model', Response::MODEL_PREFERENCES)
->param('userId', '', new UID(), 'User unique ID.')
->inject('response')
->inject('projectDB')
@ -167,7 +167,7 @@ App::get('/v1/users/:userId/prefs')
$prefs = $user->getAttribute('prefs', new \stdClass());
$response->dynamic(new Document($prefs), Response::MODEL_ANY);
$response->dynamic(new Document($prefs), Response::MODEL_PREFERENCES);
});
App::get('/v1/users/:userId/sessions')
@ -378,7 +378,7 @@ App::patch('/v1/users/:userId/prefs')
->label('sdk.description', '/docs/references/users/update-user-prefs.md')
->label('sdk.response.code', Response::STATUS_CODE_OK)
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
->label('sdk.response.model', Response::MODEL_ANY)
->label('sdk.response.model', Response::MODEL_PREFERENCES)
->param('userId', '', new UID(), 'User unique ID.')
->param('prefs', '', new Assoc(), 'Prefs key-value JSON object.')
->inject('response')
@ -401,7 +401,7 @@ App::patch('/v1/users/:userId/prefs')
throw new Exception('Failed saving user to DB', 500);
}
$response->dynamic(new Document($prefs), Response::MODEL_ANY);
$response->dynamic(new Document($prefs), Response::MODEL_PREFERENCES);
});
App::delete('/v1/users/:userId/sessions/:sessionId')

View file

@ -40,6 +40,7 @@ use Appwrite\Utopia\Response\Model\Tag;
use Appwrite\Utopia\Response\Model\Task;
use Appwrite\Utopia\Response\Model\Token;
use Appwrite\Utopia\Response\Model\Webhook;
use Appwrite\Utopia\Response\Model\Preferences;
use Appwrite\Utopia\Response\Model\Mock; // Keep last
use stdClass;
@ -72,6 +73,7 @@ class Response extends SwooleResponse
const MODEL_SESSION_LIST = 'sessionList';
const MODEL_TOKEN = 'token';
const MODEL_JWT = 'jwt';
const MODEL_PREFERENCES = 'preferences';
// Storage
const MODEL_FILE = 'file';
@ -175,6 +177,7 @@ class Response extends SwooleResponse
->setModel(new Rule())
->setModel(new Log())
->setModel(new User())
->setModel(new Preferences())
->setModel(new Session())
->setModel(new Token())
->setModel(new JWT())

View file

@ -109,6 +109,7 @@ class V06 extends Filter {
case Response::MODEL_ANY :
case Response::MODEL_DOCUMENT :
case Response::MODEL_PREFERENCES :
$parsedResponse = $content;
break;

View file

@ -0,0 +1,33 @@
<?php
namespace Appwrite\Utopia\Response\Model;
use Appwrite\Utopia\Response;
class Preferences extends Any
{
/**
* @var bool
*/
protected $any = true;
/**
* Get Name
*
* @return string
*/
public function getName():string
{
return 'Preferences';
}
/**
* Get Collection
*
* @return string
*/
public function getType():string
{
return Response::MODEL_PREFERENCES;
}
}

View file

@ -47,7 +47,7 @@ class User extends Model
'example' => true,
])
->addRule('prefs', [
'type' => self::TYPE_JSON,
'type' => Response::MODEL_PREFERENCES,
'description' => 'User preferences as a key-value object',
'default' => new \stdClass,
'example' => ['theme' => 'pink', 'timezone' => 'UTC'],