def METHOD_NAME(self, pid, record, links_factory=None):
    """Return a list of citations for a given author recid.
    :param pid:
        Persistent identifier instance.
    :param record:
        Record instance.
    :param links_factory:
        Factory function for the link generation, which are added to
        the response.
    """
    author_pid = pid.pid_value
    citations = {}
    query = Q('match', authors__recid=author_pid)
    search = LiteratureSearch().query('nested', path='authors', query=query)\
                               .params(_source=[
                                   'authors.recid',
                                   'control_number',
                                   'self',
                               ])
    # For each publication co-authored by a given author...
    for result in search.scan():
        result_source = result.to_dict()
        recid = result_source['control_number']
        authors = set([i['recid'] for i in result_source['authors']])
        citations[recid] = {}
        nested_search = LiteratureSearch().query({
            "match": {
                "references.recid": recid
            }
        }).params(
            _source=[
                "authors.recid",
                "collections",
                "control_number",
                "earliest_date",
                "self",
            ]
        )
        # The source record that is being cited.
        citations[recid]['citee'] = dict(
            id=recid,
            record=result_source['self'],
        )
        citations[recid]['citers'] = []
        # Check all publications, which cite the parent record.
        for nested_result in nested_search.scan():
            nested_result_source = nested_result.to_dict()
            # Not every signature has a recid (at least for demo records).
            try:
                nested_authors = set(
                    [i['recid'] for i in nested_result_source['authors']]
                )
            except KeyError:
                nested_authors = set()
            citation = dict(
                citer=dict(
                    id=int(nested_result_source['control_number']),
                    record=nested_result_source['self']
                ),
                # If at least one author is shared, it's a self-citation.
                self_citation=len(authors & nested_authors) > 0,
            )
            # Get the earliest date of a citer.
            try:
                citation['date'] = nested_result_source['earliest_date']
            except KeyError:
                pass
            # Get status if a citer is published.
            # FIXME: As discussed with Sam, we should have a boolean flag
            #        for this type of information.
            try:
                citation['published_paper'] = "Published" in [
                    i['primary'] for i in nested_result_source[
                        'collections']]
            except KeyError:
                citation['published_paper'] = False
            citations[recid]['citers'].append(citation)
    return json.dumps(citations.values())