NAME

Bif::DB - helper methods for a read-only bif database

VERSION

0.1.0 (yyyy-mm-dd)

SYNOPSIS

use strict;
use warnings;
use Bif::DB;

# Bif::DB inherits from DBIx::ThinSQL, which inherits from DBI.
my $db = Bif::DB->connect( $dsn );

# Read only operations on a bif database:
my $id = $db->path2project_id( $path );

DESCRIPTION

Bif::DB is a DBI derivative that provides various read-only methods for retrieving information from a bif repository. For a read-write equivalent see Bif::DB::RW. The read-only and read-write parts are separated for performance reasons.

METHODS

path2project_id( $path ) -> Int

Returns the integer ID matching the project $path, or undef if no match is found.

get_topic( $ID ) -> HashRef

Looks up the topic identified by $ID and returns undef or a hash reference containg the following keys:

  • id - the topic ID

  • first_update_id - the update_id that created the topic

  • kind - the type of the topic

  • uuid - the universally unique identifier of the topic

If the topic is an issue then the following keys will also contain valid values:

  • project_issue_id - the project-specific topic ID

  • project_id - the project ID matching the project_issue_id

get_update( "$ID.$UPDATE_ID" ) -> HashRef

Looks up the update identified by $ID.$UPDATE_ID and returns undef or a hash reference containg the following keys:

  • id - the topic ID

  • update_id - the ID of the update

  • kind - the type of the topic

  • uuid - the universally unique identifier of the topic

If the update relates to an issue then the following keys will also contain valid values:

  • project_issue_id - the project-specific topic ID

  • project_id - the project ID matching the project_issue_id

get_project( $PATH ) -> HashRef

Looks up the project identified by $PATH and returns undef or a hash reference containg the following keys:

  • id - the topic ID

  • first_update_id - the update_id that created the topic

  • kind - the type of the topic

  • uuid - the universally unique identifier of the topic

  • path - the path of the project

  • parent_id - the parent ID of the project

status_ids( $project_id, $kind, @status ) -> \@ids, \@invalid

Takes a project ID, a thread type (task, issue, etc) and a list of status names and returns an arrayref of matching IDs, and an arrayref of invalid names. This method will silently ignore any @status which are undefined.

hub_info( $alias ) -> HashRef

Returns a HASH reference containing information about the hub identified by $alias with the following keys:

  • id - the topic ID for the hub

  • alias - the alias for the hub

  • location - the location of the hub

Returns undef if $alias is not found.

SEE ALSO

Bif::DB::RW

AUTHOR

Mark Lawrence <nomad@null.net>

COPYRIGHT AND LICENSE

Copyright 2013 Mark Lawrence <nomad@null.net>

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.