[Koha-devel] DBIC > Swagger object definition
Tomas Cohen Arazi
tomascohen at gmail.com
Thu Jan 5 20:38:45 CET 2017
It would be used like this:
kohadev-koha at kohadevbox:/home/vagrant/kohaclone$ ../misc4dev/
koha_schema_to_swagger.pl --class BorrowerAttributeType | jq .
{
"type": "object",
"properties": {
"code": {
"type": [
"string"
],
"description": "Unique key used to identify the attribute type"
},
"description": {
"type": [
"string"
],
"description": "Description for the attribute type"
},
"repeatable": {
"type": [
"boolean"
],
"description": "Defines if a patron can have multiple values for the
attribute type"
},
"unique_id": {
"type": [
"boolean"
],
"description": "Defines if the assinged value need to be unique"
},
"opac_display": {
"type": [
"boolean"
],
"description": "Defines if the attribute is visible to patrons on
their account in the OPAC or not"
},
"opac_editable": {
"type": [
"boolean"
],
"description": "Defines if the attribute is editable by patrons on
their account in the OPAC or not"
},
"staff_searchable": {
"type": [
"boolean"
],
"description": "Defines if the attribute is searchable via the patron
search in the staff client"
},
"authorised_value_category": {
"type": [
"string",
"null"
],
"description": "Foreign key from authorised_values that links this
attribute to an authorized value category"
},
"display_checkout": {
"type": [
"boolean"
],
"description": "Defines if the attribute is displayed in checkout
screens"
},
"category_code": {
"type": [
"string",
"null"
],
"description": "Defines a constraint on a patron category for the
attribute type"
},
"class": {
"type": [
"string"
],
"description": "Defines a class for grouping attributes"
}
}
}
El jue., 5 ene. 2017 a las 16:32, Tomas Cohen Arazi (<tomascohen at gmail.com>)
escribió:
> In the process of writing a script for generating swagger object
> definitions our of DBIC schemas (for sort-of scaffolding them making easier
> to add REST endpoints) I resumed some talks we had at Marseille, and also
> picked some previous work from Lari on automating the Koha::Object <->
> Swagger translation.
>
> One thing that would be handy for this process, is to add the column
> descriptions to the schema files. This can be accomplished like this
> example (for Koha::Schema::Result::BorrowerAttributeType):
>
> +__PACKAGE__->add_columns(
> + "+code" => {
> + koha_description => "Unique key used to identify the attribute
> type"
> + },
> + "+description" =>
> + { koha_description => "Description for the attribute type" },
> + "+repeatable" => {
> + koha_description =>
> + "Defines if a patron can have multiple values for the
> attribute type"
> + },
> + "+unique_id" => {
> + koha_description => "Defines if the assinged value need to be
> unique"
> + },
> + "+opac_display" => {
> + koha_description =>
> + "Defines if the attribute is visible to patrons on their
> account in the OPAC or not"
> + },
> + "+opac_editable" => {
> + koha_description =>
> + "Defines if the attribute is editable by patrons on their
> account in the OPAC or not"
> + },
> + "+staff_searchable" => {
> + koha_description =>
> + "Defines if the attribute is searchable via the patron search
> in the staff client"
> + },
> + "+authorised_value_category" => {
> + koha_description =>
> + "Foreign key from authorised_values that links this attribute
> to an authorized value category"
> + },
> + "+display_checkout" => {
> + koha_description =>
> + "Defines if the attribute is displayed in checkout screens"
> + },
> + "+category_code" => {
> + koha_description =>
> + "Defines a constraint on a patron category for the attribute
> type"
> + },
> + "+class" =>
> + { koha_description => "Defines a class for grouping attributes" }
> +);
>
> This way we can have really simple access to those descriptions we already
> have in kohastructure.sql:
>
> my $columns_info =
> Koha::Database->new->schema->resultset('BorrowerAttributeType')
> ->result_source->columns_info;
>
> foreach $key ( keys %{ $columns_info } ) {
> print "Column: $key | Description: " .
> $columns_info->{$key}->{koha_description};
> }
>
> This could be an easy initial task for academy bugs.
>
> Opinions? We will need this at some point if we would change our workflow
> and have DB structure handled by DBIC.
>
> Anyway, I'll send a pull request to Jonathan so he adds this handy (and
> perfectible) script to his koha-misc4dev repository. This will make it
> available on kohadevbox right out-of-the-box. I'll then try to document it
> on Kyle's Koha Developer Handbook, which we all should add our bits of
> knowledge!
>
> Looking forward to your feedback!
>
> --
> Tomás Cohen Arazi
> Theke Solutions (https://theke.io <http://theke.io/>)
> ✆ +54 9351 3513384 <+54%209%20351%20351-3384>
> GPG: B2F3C15F
>
--
Tomás Cohen Arazi
Theke Solutions (https://theke.io <http://theke.io/>)
✆ +54 9351 3513384
GPG: B2F3C15F
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.koha-community.org/pipermail/koha-devel/attachments/20170105/25ff1ed4/attachment-0001.html>
More information about the Koha-devel
mailing list