NAME

Yancy::Model::Schema - Interface to a single schema

VERSION

version 1.088

SYNOPSIS

my $schema = $app->model->schema( 'foo' );

my $id = $schema->create( $data );
my $item = $schema->get( $id );
my $count = $schema->delete( $id );
my $count = $schema->delete( $where );
my $count = $schema->set( $id, $data );
my $count = $schema->set( $where, $data );

my $res = $schema->list( $where, $opts );
for my $item ( @{ $res->{items} } ) { ... }

DESCRIPTION

NOTE: This module is experimental and its API may change before Yancy v2!

For information on how to extend this module to add your own schema and item methods, see Yancy::Guides::Model.

ATTRIBUTES

model

The Yancy::Model object that created this schema object.

name

The name of the schema.

json_schema

The JSON Schema for this schema.

METHODS

id_field

The ID field for this schema. Either a single string, or an arrayref of strings (for composite keys).

build_item

Turn a hashref of row data into a Yancy::Model::Item object using "find_class" in Yancy::Model to find the correct class.

validate

Validate an item. Returns a list of errors (if any).

get

Get an item by its ID. Returns a Yancy::Model::Item object.

list

List items. Returns a hash reference with items and total keys. The items is an array ref of Yancy::Model::Item objects. total is the total number of items that would be returned without any offset or limit options.

create

Create a new item. Returns the ID of the created item.

set

Set the given fields in an item. See also "set" in Yancy::Model::Item.

delete

Delete an item. See also "delete" in Yancy::Model::Item.

SEE ALSO

Yancy::Guides::Model, Yancy::Model

AUTHOR

Doug Bell <preaction@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2021 by Doug Bell.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.